给定这个控制器:
ItemController= Ember.Controller.extend({
subItems: Ember.ArrayController.create({
content: App.store.find(App.models.SubItem),
sortProperties: ['name']
}),
currentItemIdBinding: 'App.router.mainController.currentItemId',
item: function() {
return App.store.find(App.models.SubItem, this.get('currentItemId'));
}.property('currentItemId'),
currentSubItems: function () {
return this.get('subItems.content')
.filterProperty('item_id', this.get('item.id'));
}.property('item', 'subItems.@each')
});
模板中的每个块:
{{#each subItem in currentSubItems}}
{{view App.SubItemView}}
{{/each}}
我将如何获得对 SubItemView 控制器中的“subItem”的访问权限?
编辑:
我偶然发现了一种方法来做到这一点。如果我稍微更改每个块:
{{#each subItem in currentSubItems}}
{{view App.SubItemView subItemBinding="subItem"}}
{{/each}}
并向 SubItemView 类添加一个 init 方法:
init: function() {
this._super();
this.set('controller', App.SubItemController.create({
subItem: this.get('subItem')
}));
})
我可以访问控制器中的 subItem。然而,这只是在我数不清的层面上感觉不对。