我有一個Backbone js應用程序,當我轉到URL domain.com/item/1
或domain/item/2等時運行。當應用程序啓動時,我創建了一個新的我的模型實例並將其傳遞給需要的id成爲網址的最後一部分。有沒有辦法在Backbone中訪問它?主幹獲取URL參數
我知道很容易構建一個可以在哈希後訪問參數的路由器,所以我更好地將我的URL更改爲類似domain.com/item/1#1
的東西?
我有一個Backbone js應用程序,當我轉到URL domain.com/item/1
或domain/item/2等時運行。當應用程序啓動時,我創建了一個新的我的模型實例並將其傳遞給需要的id成爲網址的最後一部分。有沒有辦法在Backbone中訪問它?主幹獲取URL參數
我知道很容易構建一個可以在哈希後訪問參數的路由器,所以我更好地將我的URL更改爲類似domain.com/item/1#1
的東西?
我不知道你有一個骨幹路由器或不是。但這很容易實現的基本使用Backbone.router
之一。 ,您不必使用#
或任何東西。您可以在斜線之間訪問任何內容。
routes: {
"item/:page": function(page){
//page holds the query parameter.
}
}
你的路由器上的路由與函數的參數哈希映射的URL(或只是直接的函數定義,如果你願意),類似於查看的事件哈希值。路由可以包含參數部分:param,它與斜槓之間的單個URL組件匹配;和splat parts * splat,它可以匹配任意數量的URL組件。部分路徑可以通過將其放在括號中(/:可選)來使其成爲可選項。
有關詳細信息,請參閱文檔中的Backbone.router部分。
僅供參考,查詢參數傳遞給你的模型不應該當用戶啓動應用程序,但時候routes
是要更改頁面called.otherwise每次,您需要更改URL並重新加載整個執行頁。
,通常控制器使模型實例,這意味着,你最好在router
創建參數控制器實例,然後在這樣的
routes: {
"item/:page": function(page){
var page = new YourNameSpace.Controller.Foo({pageId : page});
page.render();
}
}
//inside of Itempage Controller
initialize : function(){
this.model = new YourNameSpace.Model.Foo({pageId : this.pageId});
}
的controller.something創建一個模型