javascript - 条件 Action 逻辑应该去哪里?

标签 javascript ember.js conditional-statements standards

我正在开发一个使用 ember 的项目。条件逻辑可以放置在 HTML 模板、 Controller 和定义函数的位置。我有一个仅需要在全局变量为 true 时触发的操作。

    <div {{action 'CallThisAction' on='click'}}>...</div>

在 .hbs 中我可以做

{{#if global.x}}
   <div {{action 'CallThisAction' on='click'}}>...</div>
{{else}}
   <div>...</div>
{{/if}}

或者在我可以的函数中

CallThisAction(){
 if(global.x){
    //do something
   }
}

或者我可以将逻辑添加到 Controller 中,以防止 CallThisAction 被偏向于 global.x 调用。 Controller 也会折旧。

我也可以作为参数传递:

CallThisAction(x){
 if(x){
    //do something
   }
}

有没有更干净的方法来做到这一点?理想情况下,这里的解决方案会很好:Feature Request

最佳答案

您的模板不应使用全局变量。最好将这样的逻辑存储在您的操作中:

actions: {
  CallThisAction(){
    if(!global || !global.x){
      return;
    }
    // do something
  }
}

关于javascript - 条件 Action 逻辑应该去哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38532432/

相关文章:

javascript - 如何授权自定义功能使用 Google 日历?

javascript - 未知蓝图 : resource in Ember JS

javascript - jsFiddle 逻辑运算符中的圆括号

Java:If 构造中的初始化条件(性能)

javascript - 当我的动画完成时,transitionend 事件不会触发

javascript - React Router V4 - 在组件之间而不是整个页面之间路由

javascript - Chrome 扩展回调

javascript - Ember 项目中类的常规目录是什么?

javascript - 简单的 Ember 路线不起作用?

ios - 我想在与 api 数据对应的标签中将可用时间显示为粗体和不可用时间(罢工)