1

我使用MVC的Backbone.js。分解Backbone.js設置方法時避免範圍陷阱?

我的Model.set()方法內我想等待數據加載之前觸發更改事件。

//Pseudo 
set() { 
    create changed attributes ... then: 
    dataHelper.load(changedAttributes, stabilizeModel) 
} 

stabilizeModel() { 
    now set changedAttributes on model ... 
    ... and trigger change events 
} 

什麼是適當的方式爲stabilizeModel方法:
1)有機會獲得changedAttributes
2)具有正確的範圍(被稱爲從「dataHelper」回調)

+1

我真的很難理解你想要做什麼。你能告訴我們一些實際的代碼來說明你遇到的問題嗎? –

+0

我不明白當模型的屬性發生變化時你會加載什麼。請更新有關更多詳細信息的問題。看起來你可能錯誤地使用它。 – fearphage

回答

0

我不認爲你應該試圖重寫model.set()。相反,你應該利用它:

function load() { 
    var attr_to_load = { ... }; 
    var attr = dataHelper.load(attr_to_load); 
    this.set(attr); 
} 

我需要更多的信息給你更好的東西。