2013-02-26 12 views
5

Sto usando un kendo.data.ObservableObject, e voglio cambiare due attributi in una volta (quindi l'evento change non viene licenziato due volte). Non sono sicuro della sintassi (background.set('id', backgroundId) per un singolo attributo) e la documentazione non è di grande aiuto. Qualsiasi aiuto?KendoUI ObservableObject: imposta più attributi

Grazie!

risposta

5

Non è possibile impostare più di un attributo in una volta. È necessario chiamare due volte il metodo set due volte.

Se si desidera solo per evitare di innescare l'evento di modifica assegnare l'attributo senza utilizzare il metodo set:

model.foo = "foo" ; // won't trigger "change" 
model.set("bar", "bar"); // will trigger "change" 
+0

Quindi, in pratica questo farebbe scattare l'evento di modifica due volte? C'è un altro modo per aggirare questa limitazione? Scrivi un evento personalizzato? – Steven

+0

Un evento personalizzato non impedisce l'attivazione dell'evento di modifica. –

+0

Ciò che è di particolare interesse è ciò che accade durante questo evento. Abbiamo una griglia legata a un oggetto osservabile, ogni riga ha un selettore personalizzato per una particolare colonna che, una volta cambiata, genera un evento che catturiamo, che a sua volta aggiorna vari campi sull'oggetto args.data usando il metodo set. È incredibilmente lento e non c'è assolutamente modo di aggirarlo. Stiamo pensando di eliminare l'ObservableObject, non sembra valsa la pena. – Jacques