如何在提交处理程序回调中访问主干视图
How to access backbone view in submitHandler callback?
我正在探索骨干网.js我正在尝试设置简单的登录页面。这是我的观点.js文件:
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;
}
});
如您所见,我在render
函数中使用附加到表单的jquery.validation
。作为提交处理程序回调,我已经设置了login
函数。此行
this.model.set({...
给了我this.model is undefined
错误,所以我假设登录功能中的this
与initialize
或render
函数中的this
不同。我的问题如何在登录功能中访问骨干this
?
一种方法是使用 jQuery.proxy() 为 login 函数设置 "this" 的值:
$(this.el).find("form").validate({
submitHandler: $.proxy(this.login, this)
});
代理返回一个新函数,其中包含"this"的新值。由于渲染函数中的"this"指向您的视图,因此将其作为第二个参数传递给代理。
相关文章:
- UI5:如何访问视图中定义的html元素
- 调用render作为回调时访问视图属性
- 主干.js如何访问视图中的窗体值
- 控制器是否应直接访问视图的模型
- RequireJS, Pub/Sub.如果没有糟糕的解决方法,我无法从其自己的方法访问视图实例
- 如何访问视图? |分机.js 6.
- 无法一致地访问视图中的主干视图
- Django:在表的编辑期间未访问视图
- 我们可以在视图的init钩子内访问视图的相应控制器吗
- 是否可以从main.js访问视图中声明的js变量
- 当从Laravel中的资源控制器访问视图时,Vue.js中的$http.get不起作用
- 无法访问视图中的作用域-Angular
- Backbone.js&Marionette.js-无法从app.js主文件访问视图
- Angular Ui-Router |从控制器访问视图中的作用域变量,但不能正常工作
- 如何从视图文件访问视图模型中定义的变量
- knockout:通过iframe访问视图模型
- 通过Javascript访问视图模型元素
- 访问视图中的AngularJS变量
- 骨干从另一个集合中的模型访问视图
- kendo要求从另一个模块访问视图模型