1
我正在創建一個web應用程序,其中用戶創建一個物品清單,並使用文件夾對它們進行分類。現在假設我有兩個文件夾是這樣的:骨幹:如何在導航到路線時處理視圖/模型?
- 所有項目(路徑:/)
- 壁櫥項目(路線:#獲取/衣櫃/ ID)
當我這些路線之間導航,我想要處理在之前的路線中呈現的模型。我該怎麼做,在哪裏做?當我導航到可以執行此操作的新路線時是否會觸發事件?
我正在創建一個web應用程序,其中用戶創建一個物品清單,並使用文件夾對它們進行分類。現在假設我有兩個文件夾是這樣的:骨幹:如何在導航到路線時處理視圖/模型?
當我這些路線之間導航,我想要處理在之前的路線中呈現的模型。我該怎麼做,在哪裏做?當我導航到可以執行此操作的新路線時是否會觸發事件?
有很多方法可以解決這個問題,這取決於您如何進行導航。如果您使用實際鏈接更改路線,或者使用router.navigate()
,則router
將調度您可以偵聽的route:<route name>
事件,並在傳遞給路由功能時將相同的參數傳遞給處理程序。
在什麼結果是它只需多長時間才能建立測試用例代碼骨幹示範,我讓你的jsfiddle來說明這種方法:http://jsfiddle.net/nrabinowitz/ZrgJF/7/
很多,這只是設置代碼;對於這個問題的重要的部分是路由器:
var MyRouter = Backbone.Router.extend({
routes: {
'view/:id' : 'openView'
},
openView: function(id) {
app.openView(id)
}
});
router = new MyRouter();
和視圖,結合遣返路線:
var MyView = Backbone.View.extend({
initialize: function(opts) {
this.id = opts.id;
router.bind('route:openView', this.dispose, this);
},
// id is the same as the route argument
dispose: function(id) {
if (id != this.id) {
this.remove();
}
}
// etc
});