О, эй, есть мой ответ!
Существует несколько способов, которыми вы можете наблюдать Em.A()
. У вас есть .observes('a.[]')
, .observes('[email protected]')
и .observes('a.length')
. Концепция такая же, как и любое свойство в Ember, но вам просто нужно напрямую манипулировать массивом, и наблюдатель должен стрелять. Очевидно, что использование метода set
не будет работать в массиве (Ember), так что, возможно, именно там вы поступили не так?
Я изменил свой старый jsfiddle для учета наблюдаемого массива (я также обновил все до последних версий).
Я думаю, что важно помнить, что Ember Array на самом деле не массив - это объект с некоторыми пользовательскими функциями и свойствами, которые реализуют ваши обычные функции javascript массива. Поэтому вы не можете сделать что-то вроде: Em.A() = [1,2,3]
, потому что тип Em.A
- это объект, а не массив.
Еще одна полезная заметка о том, что ArrayControllers имеют содержание массива Ember, а это означает, что вы должны соблюдать массив содержания, а не само содержание (т.е. не наблюдается arraycontroller.content
, но вместо того, чтобы наблюдать arraycontroller.content.[]
).
Вот почему вы должны наблюдать странное выглядящее свойство prop.[]
на Ember Array, потому что значение Ember Array - это не то, что вы ожидаете.
Вы можете настроить jsfiddle своего нерабочего примера? – intuitivepixel