2013-02-26 14 views
5

Używam obiektu kendo.data.ObservableObject i chcę zmienić dwa atrybuty jednocześnie (aby zdarzenie change nie było uruchamiane dwukrotnie). Nie jestem pewien składni (background.set('id', backgroundId) dla jednego atrybutu), a dokumentacja nie jest zbyt pomocne. Jakaś pomoc?KendoUI ObservableObject: Ustaw wiele atrybutów

Dzięki!

Odpowiedz

5

Nie można ustawić więcej niż jednego atrybutu jednocześnie. Potrzebujesz dwa razy wywołać metodę set.

Jeśli chcesz po prostu uniknąć wyzwalania zdarzenia zmiany przypisać atrybut bez użycia metody set:

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

Więc w zasadzie byłoby to wyzwalać zdarzenia zmiany dwa razy? Czy istnieje inny sposób obejścia tego ograniczenia? Pisanie niestandardowego wydarzenia? – Steven

+0

Zdarzenie niestandardowe nie uniemożliwiłoby uruchomienia zdarzenia zmiany. –

+0

Co jest szczególnie interesujące, co dzieje się podczas tego wydarzenia. Mamy siatkę powiązaną z obserwowalnym obiektem, każdy wiersz ma niestandardowy selektor dla konkretnej kolumny, która po zmianie podnosi zdarzenie, które przechwycimy, które z kolei aktualizuje różne pola obiektu args.data przy użyciu metody set. Jest niesamowicie powolny i absolutnie nie da się tego obejść. Rozważamy rezygnację z observableObject, nie wydaje się tego warte. – Jacques