1

我想通過骨幹獲取GitHub-esque路由匹配。這意味着在檢查完每一條其他路線之後,碰到/:userName應該最後被抓到。在我目前的設置中,我的unit路由會在所有呼叫中被觸發,是否有辦法使其行爲正常?非常感謝!骨幹路由:根中的可選參數不匹配

'use strict'; 

/** 
* Module dependencies 
*/ 

var course = require('./views/course'); 
var unit = require('./views/unit'); 

/** 
* Routes 
*/ 

var Router = Backbone.Router.extend({ 
    routes: { 
    '(/)': 'course', 
    '/:user/:course/:unit(/)': 'unit' 
    }, 
    course: function() { 
    course(); 
    }, 
    unit: function() { 
    unit(); 
    } 
}); 

/** 
* Init router 
*/ 

var router = new Router(); 

/** 
* Options 
*/ 

Backbone.history.start({ 
    pushState: true 
}); 

回答

0

看起來如果你製作以「/ something」開頭的路由,骨幹將它們解釋爲「// something」。所以解決方案是刪除所有預先設置的斜槓,現在它工作得很好。

+0

Backbone.Router.extend:[「請注意,您需要避免在路徑定義中使用前導斜槓」](http://backbonejs.org/#Router-extend) –