Ember:ArrayController基于数组项属性的计算属性

时间:2014-05-30 00:07:54

标签: ember.js

我有一个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();
        }
    }
});

1 个答案:

答案 0 :(得分:2)

离开我的头顶,没有jsbin。如果有问题/错误,请给我发表评论,我会再看一遍。

App.ApplicationController = Ember.ArrayController.extend({
    retiredShoes: function() {
        return this.get("model").isAny("isRetired", true);
    }.property("model.@each.isRetired")
});