2015-09-24 70 views

回答

1

我會假設你已經設置var _this = this;的地方,但只是忘了包括它。

您可以做的是使用Function.prototype.bind(EcmaScript 5)將成功和錯誤回調綁定到正確的上下文。

success: function() { 
    alert(this); 
}.bind(this), 

error: function() { 
    alert(this); 
}.bind(this), 

這在IE9及更高版本中支持。

(如果由於某種原因你支持IE8還有的MDN頁面上的填充工具)

1

有了最新backbonejs您可以通過使用關鍵字context通過傳遞選項背景和不使用任何polyfills可言:

this.collection.create(
    { 
     'name': this.$('.name').val() 
    }, 
    { 
     success: function() { 
      alert(this); 
     }, 
     error: function() { 
      alert(this); 
     }, 
     context: this, 
     wait: true 
    } 
);