0
這兩種處理路由的方法有什麼區別?骨幹路由在路由之間循環往返右路之一
var Router = Backbone.Router.extend({
routes: {'home': 'showHome},
showHome: function() {//do whatever}
});
和
var Router = Backbone.Router.extend({
routes: {'home': 'showHome},
initialize: function() {
var router = new Router();
router.on('route:showHome', function(){//do something});
}
});
目前,我有它的第二種方式。它工作正常,我得到正確的地方..
我的路由器現在正確設置(我認爲),但我的路線仍然是怪異的(如下)。
我遇到的唯一問題是,當它改變路由時,地址欄會在多個不同路由之間閃爍,然後它會出現在正確的頁面上(始終到達正確的位置)。
我正在改變頁面內使用window.location = '#/route';
裏面的jQuery偵聽器內我的意見。
$('#right_arrow').live('click', {view: that}, this.rightArrow);
...
rightArrow: function(e){
var that = e.data.view;
if(typeof window.easyUserData.fbResponse.authResponse === 'undefined') {
// Not logged in
window.location = '#/login';
} else {
// Logged in
window.location = '#/notes/right';
}
return false;
}
我一直在努力調試和我發現,當我在window.location = '#/notes/right';
設置斷點:正確
- URL變化(「#/註釋/右」)
- 返回假執行
- 右箭頭函數結束和調試程序進入jQuery代碼
- 經過五或六''在調試器(仍然在jquery代碼中)跳過的URL更改爲'#/ news/right',這是一個nother路線我使用但不知道爲什麼它會來這裏
- 經過幾個'步驟'我們回到原來的斷點,在那裏url更改爲正確的'#/ notes/right'
- 新的查看負載
爲什麼它的行爲如此?這與我如何設置路由器有關嗎?
是的,這是有道理的,因爲我正在寫這個,我在想這個,我跟着一個教程,但是這樣做更有意義。這並不能解釋爲什麼它會暫時將其他路由加載到URL中 –