javascript - Backbone 路由: optional params in root not matching

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

我正在尝试通过 Backbone 获得 GitHub 式的路由匹配。这意味着在检查了所有其他路由之后,对 /: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
});

最佳答案

如果您创建以“/something”开头的路由,Backbone 会将它们解释为“//something”。所以解决方案是删除所有前面的斜杠,现在它工作得很好。

关于javascript - Backbone 路由: optional params in root not matching,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21660560/

相关文章:

javascript - Backbone Ajax 验证

javascript - 关闭 div - javascript 不工作

javascript - 在用户信息前插入值

javascript - 如何在初始页面加载时禁用 Backbone.js 路由

javascript - 主干 .save() 上的 404 错误

html - Border-Radius 没有创建圆 Angular 边框

javascript - 在 Vanilla JS 应用程序中是否仍然需要 $document.ready() 的现代等价物?

javascript - 在 Vue.js 中隐藏 div onclick

javascript - 咕噜初始化 : How can I copy or create an empty directory?

javascript弹出框