正确指代“这个”的方式在Backbone JS中保存后查看回调处理程序(成功或错误)
Proper way to refer to "this" view callback handlers (success or error) after save in Backbone JS
我试图在Backbone模型的成功或错误回调中通过$(this.el)引用view元素。
的例子:
从SomeViewClass(扩展了Backbone.View)中,
@model.save({}, {
success: (model, response) ->
($ this.el).removeClass("editing")
})
然而,我被"this"不指向SomeViewClass实例的事实所困扰。什么好主意吗?
既然你正在使用CoffeeScript,你可以使用一个胖箭头(=>
)来绑定this
的当前值到你的函数:
@model.save({}, {
success: (model, response) =>
($ this.el).removeClass("editing")
})
如果你在纯JavaScript中工作,你通常会使用标准的var self = this;
技巧:
var self = this;
model.save({ }, {
success: function(model, response) {
$(self.el).removeClass("editing");
}
});
或者,由于您使用的是backbone.js(它需要下划线.js),您可以使用_.bind
来构建绑定函数。
如果你的回调更大,或者你想在多个地方使用相同的回调,那么_.bindAll
将是一个选择。你必须让回调成为一个命名方法;但是,如果回调很大,你可能还是想取消内联。
相关文章:
- 使用Javascript中的回调处理变量分配
- 如何通过bxSlider回调api处理事件
- 如何处理Ajax.BeginForm()OnError OnFailure回调
- 如何在事件处理程序的回调中防止Default
- 错误处理try&catch+回调
- 可以clearTimeout删除JavaScript中已触发超时事件的未处理回调
- JQuery $.getJSON() 不能正确处理回调
- 如何处理在javascript中访问数据结构的两个回调
- 回调处理
- 使用回调处理程序调用函数内部的父对象方法
- Node.js在非阻塞函数返回后的回调处理
- 具有不同回调处理程序的单一实例 Websockets 对象
- 为什么这个回调处理程序被调用两次
- 如何在Javascript中传递一个字符串或函数名列表作为回调处理
- 使用nodejs异步回调处理循环
- javascript类中的共享回调处理程序
- javascript回调-处理读取文件与fs.readFile
- 正确指代“这个”的方式在Backbone JS中保存后查看回调处理程序(成功或错误)
- Angularjs异步回调处理
- 如何在jQuery插件中编写回调处理程序函数