2014-10-03 11 views
6

Mam problem ze zrozumieniem oczekiwanego zachowania izolacji Ember.Component. Rozumiem, że renderowanie wielu wystąpień tego samego komponentu nie powinno powodować współdzielenia właściwości między komponentami.Właściwości składnika Ember nie działa izolowane

Widzimy przeciwne zachowanie, gdy aktualizowanie właściwości komponentu (z poziomu samego komponentu) powoduje aktualizację tej samej właściwości w innych wystąpieniach tego składnika, które są obecnie renderowane na stronie.

Oto przykład problemu: http://jsbin.com/naworoyimoto/1/edit

Jest to błąd lub am I niezrozumienia jak izolacja działa w Ember.Component?

+0

możliwe duplikat [wspólną stanu w składniku Ember] (http://stackoverflow.com/questions/19070843/shared-state-in-ember -component) – sunrize920

Odpowiedz

16

Myślę, że doświadczasz zabawnej natury odwołań do obiektów JavaScript. Wpadłem dokładnie na ten problem jakiś czas temu i okazało się, ponieważ definiowałem tablice na właściwościach w definicji klasy, to powodowało, że wszystkie instancje tej klasy odwoływały się do tego samego obiektu tablicy.

Sposób, w jaki zwykle omijam ten problem, polega na ustawianiu właściwości, które mają być tablicami, jako zerowej, a następnie w metodzie init ustawiam tablice. Dzięki temu każda instancja tworzy własną tablicę, zamiast współużytkować odwołanie do tablicy z innymi instancjami!

Oto mój widelec Twojego jsbin przykład z zastosowane mój dylemat: http://jsbin.com/xulidefikuyu/1/

+0

Spot na odpowiedź, dziękuję! –

Powiązane problemy