Хребта 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()
Я не понимаю новую функцию? Может ли кто-нибудь объяснить, как это работает по-другому, чем я ожидал? Возможно, это просто мой синтаксис/значение JavaScript «это» во время определения, которое было обработано.
Я так привык делать это по-прежнему работает:
'events': {
'click input[type="button"]': 'buttonClicked'
},
Очень хорошо, спасибо. Единственное, что мне интересно в этот момент, заключается в том, будет ли каждая анонимная функция, определенная мной (например, «блины!» В вашем примере), будет иметь значение «this», ограниченное представлением, или если это будет какой бы то ни было целью это событие. Мне кажется, что эта строка обеспечит ее охват самому представлению: method = _.bind (метод, это); –
@awcrud: строка 1078 (и этот пример: http://jsfiddle.net/ambiguous/JEavM/1/) указывают, что анонимная функция будет привязана к представлению. –