У меня есть компонент входа с моделью, которая идет на сервер и получает сообщение об ошибке, если логин был неправильным.Как получить ссылку на компонент внутри модели сохранить функции обратного вызова?
Вот идея о том, что я говорю о:
var LoginModel = can.Model.extend({
create : "POST /account/login"
},{});
can.Component.extend({
tag: "pod-login",
template: can.view("/static/js/views/login_form.stache"),
viewModel:{
login: new LoginModel(),
processLogin: function(login) {
// I need to access the component here
},
processLoginError: function(response) {
// I need to access the component here
}
},
events: {
"#login_button click": function() {
var form = this.element.find('form');
var values = can.deparam(form.serialize());
this.viewModel.login.attr(values).save(
this.viewModel.processLogin,
this.viewModel.processLoginError
);
}
}
});
Проблема здесь заключается в том, что, когда я пытаюсь использовать «это» внутри модели обработчиков входа я получаю объект, INS' t текущий экземпляр компонента. В proessLoginError я получил, например, xhr-ссылку.
Как получить доступ к компоненту внутри processLogin и processLoginError?
Моим обходным путем здесь было использовать данные $ ('some_html_element_on_my_template') данных ('component', this) внутри события click_button click и получить доступ к ним внутри функций обратного вызова, но я думаю, что это можно было бы обработать лучше.
Любые прозрения?
Выглядит хорошо @ николай-надоричев! Спасибо. –