我是以肮脏的方式做到这一点,想知道是否有更好的方式:
this.collection.create(
{
'name': this.$('.name').val()
},
{
success: function() {
alert(_this);
},
error: function() {
alert(_this);
},
wait: true
}
);
答案 0 :(得分:1)
我假设你已经在某个地方设置了var _this = this;
但是忘了把它包括在内。
您可以使用Function.prototype.bind(EcmaScript 5)将成功和错误回调绑定到正确的上下文。
success: function() {
alert(this);
}.bind(this),
error: function() {
alert(this);
}.bind(this),
这在IE9及以上版本中得到支持。
(如果由于某种原因你支持IE8,MDN页面上有一个polyfill)
答案 1 :(得分:1)
使用最新的backbonejs,您可以使用context
关键字通过选项传递上下文,并且根本不使用任何polyfill:
this.collection.create(
{
'name': this.$('.name').val()
},
{
success: function() {
alert(this);
},
error: function() {
alert(this);
},
context: this,
wait: true
}
);