骨干路由:root中的可选参数不匹配

时间:2014-02-09 14:50:46

标签: javascript backbone.js frontend single-page-application backbone-routing

我正试图通过Backbone获得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
});

1 个答案:

答案 0 :(得分:0)

看来如果你制作以“/ something”开头的路线,Backbone会将它们解释为“// something”。因此解决方案是删除所有前置斜线,现在它可以正常工作。