我之前使用过的计算属性类型如下所示:
isAnyoneHungry: function () {
var everyone = this.get('everyone'),
anyoneHungry = false;
everyone.forEach(function(person) {
if (person.get('isHungry')) {
anyoneHungry = true;
}
});
return anyoneHungry;
}.property('everyone.@each.isHungry'),
everyone: Ember.A() // an array that will hold person models
用于基于数组中每个对象的一个属性计算某些东西。
是否可以根据数组中每个对象的每个属性创建计算属性?假设该person
模型具有许多布尔属性,例如isHungry
, isTired
, isCranky
, ... 我希望能够在其中任何一个发生更改时重新计算此属性。但我很懒,不想像这样输入每个属性:
function(){...}.property('everyone.@each.isHungry', 'everyone.@each.isTired', 'everyone.@each.isCranky'.
相反,我想要这样的东西:
isAnyoneUnhappy: function () {
var everyone = this.get('everyone'),
isAnyoneUnhappy = false;
everyone.forEach(function (person) {
if (person.get('isHungry') || person.get('isTired') || person.get('isCranky')) {
isAnyoneUnhappy = true;
}
});
return isAnyoneUnhappy;
}.property('everyone.@each.iWantEveryPropertyHere')
这在 Ember 中可能吗?