0

我有一些如下代码。

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 选项。但出于某种原因,我想使用 itemController 选项。

如何使用 itemController 在 #each 范围内访问 UsersController 的问候属性?

4

1 回答 1

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}}&nbsp;{{user.name}}</p>' +
  '{{/each}}'
);
于 2013-09-09T01:28:55.257 回答