改变“this"主干集合的作用域
Change "this" scope for backbone collection.create
我用一种不太干净的方式来做这件事,想知道是否有更好的方法:
this.collection.create(
{
'name': this.$('.name').val()
},
{
success: function() {
alert(_this);
},
error: function() {
alert(_this);
},
wait: true
}
);
我假设你已经设置了var _this = this;
,但只是忘记包含它。
你能做的是使用Function.prototype.bind (EcmaScript 5)将成功和错误回调绑定到正确的上下文中。
success: function() {
alert(this);
}.bind(this),
error: function() {
alert(this);
}.bind(this),
在IE9及以上版本中支持。
(如果由于某种原因你支持IE8, MDN页面上有一个填充)
使用最新的backbonejs,您可以通过使用context
关键字通过选项传递上下文,根本不使用任何多边形:
this.collection.create(
{
'name': this.$('.name').val()
},
{
success: function() {
alert(this);
},
error: function() {
alert(this);
},
context: this,
wait: true
}
);
相关文章:
- 监视函数从服务返回不起作用,但作用域函数起作用
- 将作用域存储在JSON中
- 从控制器继承了隔离的作用域以生成可重用的指令
- 从ng模板访问作用域
- 调用私有作用域
- 对父作用域的指令更新延迟了一步
- 正在$rootScope上达到控制器作用域$在内部控制器上
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 在具有命名作用域的自定义Polymer元素中隐藏表行
- AngularJS指令隔离作用域
- Angularjs:修改js中的作用域,稍后在页面中使用
- 访问多个指令的隔离作用域
- Javascript作用域和Ajax调用;工作不正常
- 向Angular作用域对象添加对象数组——TypeError
- ng重复中的ng模型-初始化唯一作用域属性
- 在put方法之前从作用域获取数据
- 如何在html中以角度显示自定义指令的作用域
- 我应该如何创建一个作用域到另一个模型的主干集合
- 改变“this"主干集合的作用域