Магистральные маршруты: необязательные параметры в корне не совпадают

Я пытаюсь получить сопоставление маршрутов в стиле GitHub через Backbone. Это означает, что обращения к /: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
});

person Yoshua Wuyts    schedule 09.02.2014    source источник


Ответы (1)


Оказывается, если вы создаете маршруты, начинающиеся с «/что-то», Backbone интерпретирует их как «//что-то». Итак, решение состояло в том, чтобы удалить все предшествующие косые черты, теперь это работает нормально.

person Yoshua Wuyts    schedule 09.02.2014