1

バックボーンでイベントバインディングを「if」に依存する方法があるかどうか知りたいです。

たとえば、ユーザー プロファイル モデルがあり、属性「acceptMsgs」が true に設定されている場合にのみ「メッセージの送信」ボタン イベントをバインドする場合。

私の現在の解決策は、イベントの発火でそれをチェックすることです。より良い方法がある場合は、plsが私を修正してください。

4

1 に答える 1

0

それがより良い方法かどうかはわかりませんが、イベントハッシュのハッシュを返す関数を使用できます(もちろん、関数内で何らかの条件をチェックできます)。

たとえば、

myView = Backbone.Views.extend({

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

 //the rest of your view
});

または、イベントハッシュを省略して、initializeメソッドでイベントをバインドすることもできます。

initialize: function (options) {
   if (someCondition) {
     this.$el.on("click", "#someButton", nameOfFunction);
   }
}
于 2012-11-13T18:24:11.767 に答える