2013-05-10 44 views
1

我很困惑骨幹的視圖渲染。我需要你的幫助。骨幹同步失敗後撤消視圖更改

例如,我有一個相冊視圖。它的渲染方法呈現每個軌道視圖。所有賽道特定事件都在「賽道」視圖中進行綁定。現在

,軌道視圖是聽它的模型。例如:

this.model.on('destroy', this.destroy, this); 

destroy: function(model){ 
    this.close(); 
}, 

所以當一個軌道被銷燬時,視圖從UI中刪除,這很好。但問題在於同步。該視圖從UI中刪除而不是從服務器中刪除。如果同步成功,則與視圖無關。

但是,如果同步不成功,我想撤消此觀點的變化(恢復軌道標記的地方是在我把它毀了)。

任何人都可以請告訴我該怎麼做?

僅供參考, 早些時候,我已經從服務器獲取成功後改變了用戶界面。但在超過98%的案例中,我們獲得了成功,我們決定立即更換用戶界面,並在出現錯誤時進行恢復。

+0

你可以嘗試指定'{真正等待}等待服務器響應回來,然後採取相應措施? – Cyclone 2013-05-10 07:02:10

+0

這是我們之前使用過的,但我們希望UI立即更新。 – HungryCoder 2013-05-10 07:06:26

+0

但是,你如何處理這種情況,就像模型從客戶端被銷燬一樣,包括視圖(無需等待服務器響應),如果服務器失敗,你會爲刪除的模型再次創建視圖嗎? – Cyclone 2013-05-10 07:13:40

回答

0

我打電話view.remove()在model.destroy的成功回調,我認爲它更容易閱讀的代碼,並瞭解發生了什麼的方式。

但是,如果你真的想恢復對sync.error的觀點我想你可以調用一個從你的摧毀呼叫一個錯誤回調還原方法。但感覺像恢復它的更多工作,而不是等待一番。

+0

是的,我不想等待獲得成功。我想立即更新。 – HungryCoder 2013-05-10 07:06:52