If statement 余烬、把手和共享条件

If statement 余烬、把手和共享条件,if-statement,ember.js,handlebars.js,conditional-statements,If Statement,Ember.js,Handlebars.js,Conditional Statements,我有一个具有多个路由的应用程序,每个模板中都有一些元素应该显示(或隐藏)-使用相同的条件,因此我创建了一个Central控制器,在其中声明条件,然后覆盖每个控制器中的方法,如(伪代码): 因此,在车把模板中,我可以像以下那样使用它: {{#if canEdit}} [Edit Button] {{/if}} 无论如何,条件计数会增加,我需要在每个控制器中超越每个条件方法,这不是最优的 问题:如何在直接指向中央控制器的视图中使用这些条件 维森: 余烬:1.1.2 把手:1.0.0 只需

我有一个具有多个路由的应用程序,每个模板中都有一些元素应该显示(或隐藏)-使用相同的条件,因此我创建了一个
Central
控制器,在其中声明条件,然后覆盖每个控制器中的方法,如(伪代码):

因此,在车把模板中,我可以像以下那样使用它:

{{#if canEdit}}
    [Edit Button]
{{/if}}
无论如何,条件计数会增加,我需要在每个控制器中超越每个条件方法,这不是最优的

问题:如何在直接指向
中央控制器的视图中使用这些条件

维森:

  • 余烬:
    1.1.2
  • 把手:
    1.0.0

只需向控制器添加别名,并在视图中使用点路径即可:

App.DetailsController = Ember.Controller.extend({
  needs: ['central'],
  central: Ember.computed.alias('controllers.central')
});


{{#if central.canEdit}}
  [Edit Button]
{{/if}}

只需向控制器添加别名并在视图中使用点路径:

App.DetailsController = Ember.Controller.extend({
  needs: ['central'],
  central: Ember.computed.alias('controllers.central')
});


{{#if central.canEdit}}
  [Edit Button]
{{/if}}

请记住,您也可以在
get
&
set
中使用点路径,这很有帮助——这是Ember的下一步遗产的一部分。节省了大量的输入--特别是当链的任何部分为空时,您需要空值,这对您来说就足够了。小心德米特;)这就是我所缺少的知识;)顺便说一句,thx这种方法对性能有重大影响吗?我还没有对其进行基准测试。我怀疑这是否有意义,只要您没有创建相互依赖的属性,而这些属性需要多次传递才能解析,这是使用
时必须注意的。在手动构造链的过程中,在
get
/
set
中使用点路径的唯一开销是初始字符串拆分。请记住,您也可以在
get
&
set
中使用点路径,这是Ember下一步遗留的一部分。节省了大量的输入--特别是当链的任何部分为空时,您需要空值,这对您来说就足够了。小心德米特;)这就是我所缺少的知识;)顺便说一句,thx这种方法对性能有重大影响吗?我还没有对其进行基准测试。我怀疑这是否有意义,只要您没有创建相互依赖的属性,而这些属性需要多次传递才能解析,这是使用
时必须注意的。使用
get
/
set
中的点路径手动构建链的唯一开销是初始字符串拆分。