7
的骨幹0.9.0更新日誌說:新的Backbone View'events'哈希如何在0.9.0版本中使用函數值而不是字符串?
視圖的事件哈希現在可能還包含直接函數值 以及現有觀點方法字符串名稱。
當我嘗試以下它失敗,說事件的值是undefined
。
var BB = Backbone.View.extend({
'initialize': function() {
this.$el.html('<input type="button" value="Click me!" />');
jQuery('body').html(this.el);
},
'events': {
'click input[type="button"]': this.buttonClicked
},
'buttonClicked': function() {
alert('button clicked!');
}
});
window.b = new BB()
我誤解了新功能嗎?有人可以解釋它的工作方式與我預期的不同嗎?也許這只是我定義的'this'的JavaScript語法/值爲borked。
我已經習慣了還在做它的工作方式:
'events': {
'click input[type="button"]': 'buttonClicked'
},
非常好,謝謝。我現在唯一想知道的是,我定義的每個匿名函數(例如您的示例中的'pancakes!')是否將其'this'的值賦給視圖,或者它是否會成爲目標事件是。在我看來,這一行將確保它的作用域爲View本身:method = _.bind(method,this); – 2012-02-02 19:42:11
@awcrud:第1078行(以及本示例:http://jsfiddle.net/ambiguous/JEavM/1/)表示匿名函數的作用域將被視爲該視圖。 – 2012-02-02 20:15:39