【问题标题】:Is there anyway to bind events with "if" dependence in Backbone?无论如何在Backbone中绑定具有“if”依赖的事件?
【发布时间】:2012-11-13 08:14:42
【问题描述】:

我想知道是否有依赖于 Backbone 中“if”的事件绑定。

例如,如果我有用户配置文件模型,并且我想仅在属性“acceptMsgs”设置为 true 时绑定“发送消息”按钮事件。

我目前的解决方案是在事件触发中检查它,如果有更好的方法,请纠正我。

【问题讨论】:

  • ??为什么在事件触发时不这样做?
  • 这就是我现在正在做的事情,我想知道是否有更好的方法
  • hm,我认为最好的方法是在“acceptMsgs”为假时禁用按钮并在它为真时激活它..所以如果不需要触发事件,它将被阻止.. !!?
  • 是的.. 不必要的绑定会影响性能吗?

标签: javascript events backbone.js bind


【解决方案1】:

我不确定这是否是一种更好的方法,但是您可以使用一个函数来返回事件哈希的哈希(当然,您可以在函数中检查一些条件)。

例如类似的东西

myView = Backbone.Views.extend({

    events: function () {
      if (someCondition) {
         return { "#someButton click" : "nameOfFunction"}
      }
    }

 //the rest of your view
});

或者,您可以放弃事件哈希并在初始化方法中绑定您的事件,例如

initialize: function (options) {
   if (someCondition) {
     this.$el.on("click", "#someButton", nameOfFunction);
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    相关资源
    最近更新 更多