バックボーンでイベントバインディングを「if」に依存する方法があるかどうか知りたいです。
たとえば、ユーザー プロファイル モデルがあり、属性「acceptMsgs」が true に設定されている場合にのみ「メッセージの送信」ボタン イベントをバインドする場合。
私の現在の解決策は、イベントの発火でそれをチェックすることです。より良い方法がある場合は、plsが私を修正してください。
バックボーンでイベントバインディングを「if」に依存する方法があるかどうか知りたいです。
たとえば、ユーザー プロファイル モデルがあり、属性「acceptMsgs」が true に設定されている場合にのみ「メッセージの送信」ボタン イベントをバインドする場合。
私の現在の解決策は、イベントの発火でそれをチェックすることです。より良い方法がある場合は、plsが私を修正してください。
それがより良い方法かどうかはわかりませんが、イベントハッシュのハッシュを返す関数を使用できます(もちろん、関数内で何らかの条件をチェックできます)。
たとえば、
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);
}
}