如何使用 itemController 访问 #each 范围内的外部属性



我有一些代码,如下所示。

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}}&nbsp;{{user.name}}</p>' +
  '{{/each}}'
);

此代码显示这些内容。

good morning John
good morning Taro

但我想像下面这样显示。

hello John
hello Taro

我确认删除项目控制器选项显示在上面。但是出于某种原因,我想使用项目控制器选项。

如何使用 itemController 访问 #each 范围内的用户控制器的问候属性?

我找到了解决方案。

https://github.com/emberjs/ember.js/pull/2614

使用父控制器实现了我的目标。

Em.TEMPLATES['users'] = Em.Handlebars.compile(
  '{{#each user in controller itemController="user"}}' +
     '<p>{{parentController.greeting}}&nbsp;{{user.name}}</p>' +
  '{{/each}}'
);

最新更新