我有一个人员列表,我想显示使用 Ember.js 编辑了多少条记录。在PeopleController内部,我尝试使用以下代码计算来自PersonController的 isEditing 属性:

Schedule.PeopleController = Ember.ArrayController.extend({
    editCounter: function () {
        return this.filterProperty('isEditing', true).get('length');
    }.property('@each.isEditing')
});
Schedule.PersonController = Ember.ObjectController.extend({
        isEditing: false
});

不幸的是,由于 editCounter 函数的结果是0。这个属性( isEditing )应该告诉我正在编辑多少人。在我称为index.html的 html 存档中调用了 editCounter 函数:
...
            {{outlet}}
            <div id="count_edits">
                <span id="total_edits">
                    <strong>Editing: </strong> {{editCounter}}
                </span>
            </div>
...

所以这是我的问题:我如何正确访问 PeopleController 中的 isEditing

最佳答案

确保在ArrayController中设置itemController:

Schedule.PeopleController = Ember.ArrayController.extend({
    itemController: 'Person',
    editCounter: function () {
        return this.filterProperty('isEditing', true).get('length');
    }.property('@each.isEditing')
});

参见http://jsbin.com/eyegoz/4/edit

09-19 19:27