Javascript 观察Ember中ObjectProxy的属性更改
以下是关于如何将复选框与余烬一起使用的本教程: 一切都很好。除了现在,我想监听对象中的属性“checked”何时更改。这是我的密码:Javascript 观察Ember中ObjectProxy的属性更改,javascript,ember.js,Javascript,Ember.js,以下是关于如何将复选框与余烬一起使用的本教程: 一切都很好。除了现在,我想监听对象中的属性“checked”何时更改。这是我的密码: someArray: Ember.computed 'proxiedCheckedItems.[]', -> // should fire whenever an item is checked. But it does not. console.debug("CD: detected change here") // return
someArray: Ember.computed 'proxiedCheckedItems.[]', ->
// should fire whenever an item is checked. But it does not.
console.debug("CD: detected change here")
// return some array
proxiedModel: Ember.computed.map 'someArray', (model) ->
Ember.ObjectProxy.create({
content: model,
checked: false
})
proxiedCheckedItems: Ember.computed.filterBy('proxiedModel', 'checked', true)
因此,观察
proxiedCheckedItems.[]
是错误的。我试过proxiedCheckedItems.@each
和proxiedCheckedItems.checked
。什么都不管用。那么,如何在Ember中观察ObjectProxy数组呢?您具有循环计算属性someArray
依赖于proxiedCheckedItems
,后者依赖于proxiedModel
,后者依赖于someArray
!老实说,我不能说在你的情况下发生了什么,但我可以告诉你,余烬并不是用来处理循环相关属性的。很可能您正在调用某种未定义的行为。在这种情况下,您的模板是什么样子的?[]
将观察长度,这样看起来很好。#1是错误的proxiedCheckedItems
是一个数组,当其任何属性的.checked
值更改时,该数组的长度也会更改。在这种情况下,proxiedCheckedItems.[]
是正确的。