我试图这样做,但它不起作用
App.FacetCheckboxView = Ember.Checkbox.extend({
facetName: null,
facetValue: null,
checked: function () {
var s = this.get('facetValue');
var selected = this.get('controller.' + this.get('facetName'));
return selected.contains(s);
}.property('controller.'+ this.get('facetName') +'.@each')
})
如果我在属性方法参数中使用静态字符串,它确实有用。是否有其他方法可以实现相同的目标?
答案 0 :(得分:1)
当然,您可以在init
上定义计算属性App.FacetCheckboxView = Ember.Checkbox.extend({
init: function(){
this._super();
Ember.defineProperty(this, 'checked', Ember.computed(function() {
var facetValue = this.get('facetValue'),
options = this.get('controller.' + this.get('facetName'));
return options.contains(s);
}).property("controller." + this.get('facetName') + ".[]", 'facetValue'));
},
facetName: null,
facetValue: null
});
我做了一个例子,我不完全确定你是否正在使用这个视图,但它应该让你走上正确的道路。
http://emberjs.jsbin.com/vopewayo/1/edit
就个人而言,似乎更容易将值定义为字符串,但作为集合,但我不确定您的确切用例。