2012-04-27 64 views
0

我有2個模型,一個叫做配置文件和一個叫profilelist的配置文件集合。如何在modelchange之後停止渲染視圖?

一個視圖顯示配置文件的列表,其名爲profileListView,當您單擊配置文件時,它會加載一個新視圖profileDetailsView,您可以在其中編輯其詳細信息。

現在,當我在此profileDetailsView中更改此配置文件的屬性並執行model.Change時,profileListView會重新顯示,因爲它顯然會偵聽其模型。 問題是視圖重新放置,但URL保持不變,指向我更改的配置文件的細節視圖,這會弄亂站點的導航。

所以我想停止profileListView的自動重新渲染,然後手動'重定向'到列表視圖。

我該如何做到這一點?

回答

1

你可能想要重新渲染的視圖,對不對?你只是想要改變網址。因此,一個選擇是有你的路由器上綁定模型中的處理程序,然後把它更新URL - 是這樣的:

model.on('change', function(model) { 
    var url = getTheCorrectUrl(model); 
    router.navigate(url); 
}); 
+0

感謝兄弟,其實我不得不把它放在model.save成功,否則會在保存模型並最終不保存模型之前重新加載頁面。此外,我必須使用router.saveLocation,而不是導航,因爲該網站顯然與舊版本的BackBone(0.3.3)一起工作, – user1309946 2012-04-30 09:54:52