我想观察一个嵌套属性。我有以下Ember数组:
specifications: [
{
title: "specification name",
filters: [
{
title: "example"
checked: false
},
{
title: "example 2",
checked: true
}
]
},
...
]
我想创建一个计算属性:
activeFilters: (->
Ember.computed.filterBy('specifications.@each.filters', 'checked', true),
).property('specifications.@each.filters')
活动过滤器属性不起作用,我尝试了几种属性方法的组合,但都没有工作。
我试图创建的属性是否真的可能?
答案 0 :(得分:0)
是的,有可能。问题是,要使它工作,您无法使用JavaScript数组,需要Ember.ArrayProxy
,然后您可以访问其特殊属性:http://emberjs.com/api/classes/Ember.ArrayProxy.html
specifications: Ember.ArrayProxy.create({
content: [
{
title: "specification name",
},
]
});
所以,你会有类似的东西:
oneSpecChangedCheck: function() {
// don't know which, but someone changed
var s = this.get('specs');
// loop and process
return s;
}.property('specs.@each.checked'),
http://emberjs.jsbin.com/zohuzo/2/edit?html,js,console,output