您不需要{{outlet}}
对所有路线都使用 an 。您可以定义一个路由来设置控制器。
您需要定义App.PersonRoute
为手风琴路线内的嵌套路线。
使用App.PersonRoute
'ssetupController
用当前人更新手风琴控制器。
例如,假设具有手风琴的模板是application
模板。定义一个名为 `person' 的子路由:
App.Router.map(function() {
this.route('person', { path: ':person_id' });
});
App.PersonRoute = Ember.Route.extend({
setupController: function(controller, model) {
this.controllerFor('application').set('selected', model);
this._super.apply(this, arguments);
}
});
然后您可以使用项目控制器检查是否选择了当前人员:
{{#each itemController='personItem'}}
{{#linkTo "person" this}}{{name}}{{/linkTo}}
{{#if isSelected}}
{{partial "person"}} {{! or whatever you wish to do }}
{{/if}}
{{/each}}
使用项目控制器:
App.PersonItemController = Ember.ObjectController.extend({
needs: 'application',
isSelected: function() {
return this.get('model') === this.get('controllers.application.selected');
}.property('controllers.application.selected', 'model')
});
工作 jsbin:http: //jsbin.com/ucanam/1587/edit