2011-11-08 94 views
1

這是有效的。使用router時不會觸發頁面加載時的初始骨幹路由.route

Admin.Routers.AppRouter = Backbone.Router.extend({ 
    // home() gets trigger when I visit http://example.com/admin 
    routes: { 
    "admin": "home" 
    }, 

    initialize: function() {}, 

    home: function() { 
    log("Home"); 
    } 
}); 

這是行不通的。

Admin.Routers.AppRouter = Backbone.Router.extend({ 
    initialize: function() {  
    var that = this; 

    // home() DOES NOT get trigger when I visit http://example.com/admin 
    this.route(/^\/admin$/, "home", function() { 
     that.home(); 
    }); 
    }, 

    home: function() { 
    log("Home"); 
    } 
}); 

這是router.route的正確功能嗎?

回答

0

我假設您使用的是{pushState: true},它基於您發佈的示例網址。你可以嘗試以下嗎?

this.route("admin", "home", function() { 
     that.home(); 
    }); 
+0

沒錯,就是工作。但爲什麼正則表達式不會在加載時觸發? – erickreutz

+0

以及我的下一個建議是去除主要的正斜槓。你可以試試'/^admin $ /'作爲你的regEx表達式嗎? – timDunham

0
Backbone.history.start({ silent: false }); 
+0

考慮解釋你的答案,而不是隻發佈其他人可能會或可能不瞭解的意義的代碼 – ADyson

相關問題