Я изучаю backbone.js, и я пытаюсь настроить простую страницу входа. Вот подам view.js:Как получить доступ к базовому виду в обратном вызове submitHandler?
window.LoginView = Backbone.View.extend({
events: {
},
initialize : function() {
this.model.bind("error", this.error);
this.template = _.template(tpl.get('login'));
},
login: function(form){
this.model.set({
login: $("#login", form).val(),
password: $("#password", form).val()
});
},
render : function(eventName) {
$(this.el).html(this.template());
$(this.el).find("form").validate({
submitHandler: this.login
});
return this;
}
});
Как вы можете видеть, я использую jquery.validation
присоединены, с образованием в render
функции. Как submitHandler callback, я установил функцию login
. Эта линия
this.model.set({...
дает мне this.model is undefined
ошибку поэтому я предполагаю, что this
функция входа не то же самое, как this
в initialize
или render
функций. Мой вопрос, как я могу получить доступ к базовой системе this
в функции входа?
спасибо;) Я придумал что-то, используя переменную tmp, назначенную с основой 'this', но ваше решение намного элегантнее :) – user367956
Я думаю, что привязка предпочтительнее прокси в эти дни, но это помогает - спасибо! –
да, если вам не нужно беспокоиться о старых браузерах: this.login.bind (this) – Zevan