Oh hej, jest moja odpowiedź!
Istnieje kilka sposobów na obserwowanie właściwości Em.A()
. Masz .observes('a.[]')
, .observes('[email protected]')
i .observes('a.length')
. Koncepcja jest taka sama jak każda własność w Ember, musisz tylko bezpośrednio manipulować tablicą, a obserwator powinien strzelać. Oczywiście użycie metody set
nie będzie działało na tablicy (Ember), więc może właśnie tam popełniłeś błąd?
Zmodyfikowałem mój stary jsfiddle w celu objęcia tablicy obserwowalnej (zaktualizowałem wszystko do najnowszych wersji).
Myślę, że ważne jest, aby pamiętać, że Ember Array w rzeczywistości nie jest tablicą - jest to obiekt z pewnymi niestandardowymi funkcjami i właściwościami, które implementują zwykłe funkcje javascript tablicy. Więc nie można zrobić coś takiego: Em.A() = [1,2,3]
, ponieważ typ Em.A
jest obiektem, a nie tablicą.
Innym przydatnym uwaga jest taka, że ArrayControllers mieć zawartość tablicy Ember, co oznacza, że trzeba obserwować tablicę zawartości, nie sama treść (tzn nie obserwować arraycontroller.content
, ale zamiast obserwować arraycontroller.content.[]
).
Oto dlaczego musisz obserwować dziwnie wyglądającą właściwość prop.[]
na tablicy Ember, ponieważ wartość tablicy Ember nie jest zgodna z oczekiwaniami.
możesz ustawić jsfiddle swojego niedziałającego przykładu? – intuitivepixel