我有一些代码如下。
App = Ember.Application.create({ });
App.Router.map(function() { this.route('users', {path: '/'}); });
App.UsersRoute= Em.Route.extend({
model: function() {
return [{name:'John'}, {name:'Taro'}];
},
});
App.UsersController = Em.ArrayController.extend({
greeting: 'hello',
});
App.UserController = Em.ObjectController.extend({
greeting: 'good morning',
});
Em.TEMPLATES['users'] = Em.Handlebars.compile(
'{{#each user in controller itemController="user"}}' +
'<p>{{greeting}} {{user.name}}</p>' +
'{{/each}}'
);
此代码显示这些内容。
good morning John
good morning Taro
但我想要显示如下。
hello John
hello Taro
我确认删除了itemController选项显示在上面。 但我想出于某种原因使用itemController选项。
如何使用itemController访问#each范围内的UsersController问候属性?
答案 0 :(得分:1)
我找到了解决方案。
https://github.com/emberjs/ember.js/pull/2614
使用parentController实现我的目标。
Em.TEMPLATES['users'] = Em.Handlebars.compile(
'{{#each user in controller itemController="user"}}' +
'<p>{{parentController.greeting}} {{user.name}}</p>' +
'{{/each}}'
);