我有一个动态控制器属性,如果关系计数低于5,该属性将返回布尔值:
alienCountBelow5: function() {
return this.get('model').get('aliens').content.length < 5;
}.property('aliens'),
但是,即使我已指定应监视
aliens
的更改,但在向关系中添加新记录时它也不会更改。这是模型:
App.Item = DS.Model.extend({
name: DS.attr(),
aliens: DS.hasMany('alien')
});
创建新记录时,在
pushObject
对象上使用aliens
。我不确定应该怎么做,显然我做的不正确。
演示:http://emberjs.jsbin.com/yegiku/2/edit
最佳答案
看一下the docs for @each
-这是一个特殊的关键字,它观察数组的特定变化。
在您的情况下,使用以下命令将起作用(观察者仅在添加记录或从数组中删除记录时才触发):
alienCountBelow5: function() {
return this.get('model').get('aliens.length') < 5;
}.property('aliens.[]'),