2013-10-15 92 views
0

我有一個應該顯示單個模型的視圖。通過點擊鏈接,用戶可以選擇正在顯示的模型。當發生這種情況,並且選定的模型已被提取時,我如何告訴視圖切換到另一個模型?我看到三種可能的選擇。骨幹:如何在視圖中將另一個模型替換爲另一個模型?

  1. 以某種方式將視圖重新綁定到新模型並刷新它。
  2. 回收模型對象 - 設置新選擇的模型的ID和fetch()它,希望它會奇蹟般刷新在視圖中。
  3. 刪除視圖,然後用新模型重新創建它(當它完成抓取時)。

第一種方式感覺就像是「正確的」,但我無法找到一個簡單的方法來做到這一點(設置model是容易的,但是所有的事件應該是反彈的觀點來自動更新) 。第二種感覺很奇怪,可能容易發生衝突(如果具有相同ID的模型有兩個對象,會發生什麼情況?),可能根本無法工作。第三個似乎太麻煩了。所以我該怎麼做?

回答

0

你可能要考慮使用ModelBinder的庫骨幹:https://github.com/theironcook/Backbone.ModelBinder

你有刷新視圖的兩種可能的方式。您可以將模型綁定到視圖一次,然後隨後更新模型中的屬性。當Model屬性發生變化時,ModelBinder將自動更新View。

另一種解決方案是從模型中取消綁定模型,並將其重新綁定到另一個模型。

這可能會給你一個想法:http://jsfiddle.net/dazqS/視圖中有一個refreshModel函數,它取消綁定舊模型並重新綁定新模型。

refreshModel: function(model){ 
    this._modelBinder.unbind(); 
    this.model = model; 
    this._modelBinder.bind(this.model, this.el); 
} 
相關問題