這是backbone.js的一個已知功能,即當您設置的數據未更改時,它不會觸發更改事件,也不會通過驗證。然而,我需要更改事件觸發,因爲我存儲來自存儲後端驗證結果的AJAX調用的JSON響應。如果用戶在保持提交表單的同時將相同字段留空,後端驗證將返回相同的JSON結果,並且當我將其保存到模型時,它將不會觸發更改事件。當值不變時觸發backbone.js更改
有幾件事情我已經在這裏我設置的數據到模型的AJAX成功回調中嘗試:
嘗試性解決方案#1
t.model.unset('fieldErrors',{silent: true});
t.model.set({fieldErrors: JSONResponse});
嘗試性解決方案#2
t.model.set({fieldErrors: null},{silent: true});
t.model.set({fieldErrors: JSONResponse});
在進行調用並且用戶具有相同的JSONResponse時,這些結果都不會導致更改事件再次觸發。
如果你不害怕的樣板,看到ScottPuleo的答案。否則,您可以重寫'Model#set'方法來始終激發自定義事件(如果您感興趣,我會發佈一個答案)。 – Loamhoof 2013-04-11 22:29:31