我有一个ArrayContoller,我想根据其内容的属性设置一个布尔属性。
逻辑的简单语言描述:
如果数组包含属性isRetired
等于true
的任何项,请将ArrayController的retiredShoes
属性设置为true
否则,将ArrayController retiredShoes
属性设置为false
。
看起来这应该是一件简单的事情,但我无法在任何地方找到解决方案,而且我还是很陌生。
如果需要,我会把一个jsfiddle放在一起。
以下是数组和对象的控制器:
App.ApplicationController = Ember.ArrayController.extend({
sortProperties: ['title'],
itemController: 'shoe',
retiredShoes: function() {
//how do I compute this sucker?
}
});
App.ShoeController = Ember.ObjectController.extend({
needs: ['application'],
actions: {
delete: function() {
var shoe = this.get('model'),
runs = shoe.get('runs');
shoe.deleteRecord();
shoe.save();
},
toggleRetired: function() {
var shoe = this.get('model');
shoe.toggleProperty('isRetired');
shoe.save();
}
}
});
答案 0 :(得分:2)
离开我的头顶,没有jsbin。如果有问题/错误,请给我发表评论,我会再看一遍。
App.ApplicationController = Ember.ArrayController.extend({
retiredShoes: function() {
return this.get("model").isAny("isRetired", true);
}.property("model.@each.isRetired")
});