Ember如何从父控制器访问子控制器

时间:2013-07-25 20:34:26

标签: javascript html controller ember.js frontend

我有一个人员列表,我想显示使用 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 )应该告诉我正在编辑的人数。功能 editCounter 在我称为index.html的 html 存档中调用:

...
            {{outlet}}
            <div id="count_edits">
                <span id="total_edits">
                    <strong>Editing: </strong> {{editCounter}}
                </span>
            </div>
...

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

1 个答案:

答案 0 :(得分:4)

在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