2013-07-02 71 views
0

響應這是我在Backbone.js的無法訪問從成功回調

var formdata = { 
    name : this.$('#name').val(), 
    email : this.$('#email').val() 
}; 

this.collection.create(formdata, { 
    wait : true, 
    success : function(model, res) { 
    var id = model.get('id'); 
    } 
}); 

當我使用console.log(id)它已經顯示成功函數內部功能。但是我無法在成功功能之外訪問。

有沒有人得到了答案..

+0

另請參閱答案中的其他解釋:http://stackoverflow.com/questions/13301050/js-global-variable-not-being-set-on-first-iteration/13301270 #13301270 – slebetman

回答

0

成功越近的功能和您所定義的ID本身的功能(VAR ID)內,因此,按照規則的可變範圍僅限於成功的功能。

嘗試在close之外定義id並將其分配得更近。當成功執行時(異步),也就是一旦從服務器獲得響應,也會進行賦值。

+0

我用this.id替換了var id,但仍然無法正常工作.. – user1587365

0

您無法訪問它,因爲它尚未設置。代碼在保存之前執行。這就是爲什麼您使用回調