我有一个带有多个路径的应用程序,每个模板中都有应该显示(或隐藏)的元素 - 使用相同的条件,因此我创建了一个Central
控制器,我在这里声明了条件和然后覆盖每个控制器中的方法,如(伪代码):
App.CentralController = Ember.Controller.extend({
canEdit: function(){ return someCalculatedBool; }.property('view'),
canSomethingElse: function(){ return someOtherBool; }.property('view')
});
App.DetailsController = Ember.Controller.extend({
needs: ['central'],
canEdit: function(){ return this.get('controllers.central').canEdit() }.property('view'),
canSomethingElse: function(){ return this.get('controllers.central').canSomethingElse(); }.property('view')
})
所以在Handlebars模板中我可以使用它来像:
{{#if canEdit}}
[Edit Button]
{{/if}}
无论如何条件计数增长,我需要覆盖每个控制器中的每个条件方法,这不是最佳的。
问题:如何在直接指向Central
控制器的视图中使用这些条件?
Vesions:
1.1.2
1.0.0
答案 0 :(得分:1)
只需在控制器中添加别名,并在视图中使用点路径:
App.DetailsController = Ember.Controller.extend({
needs: ['central'],
central: Ember.computed.alias('controllers.central')
});
{{#if central.canEdit}}
[Edit Button]
{{/if}}