Как реализовать роутер в CanJS

Я пользуюсь приложением https://github.com/thinkadoo/Projects. Я создал подобное приложение с помощью этого. Мое приложение использует графики d3 вместо того, которое использует. Мое приложение инициализирует маршрутизаторы как

  var patientStatus = new PatientStatus('#application', {'credentials':Credentials,'secret':Secret});

Теперь, если я хочу внедрить Router, то какие изменения нужно сделать? Вот мой JSFiddle с обеими реализациями. Первый работает. Но более поздняя часть, где я инициализирую Маршрутизатор, кажется, не работает. http://jsfiddle.net/sweety1112/YMAjm/

Кто-нибудь может мне помочь.

1 ответ

Решение

Вот обновленная Fiddle, которая показывает, как работает маршрутизация:

  var Router = can.Control({
    defaults: {}
  }, {
    init: function() {
      // this.element.html(can.view('#index', {}));
    },

    ':type/:id route': function(data) {
        console.log('Type:', data.type);
        console.log('Id:', data.id);
    }
  });

  can.route.ready(false);
  new Router('#content');
  can.route.ready(true);

По сути, вы делаете инициализацию именованных заполнителей и сообщаете контроллеру, что это должно быть обработано route процессор. Теперь, если вы идете на URL, как #!test/23 данные обработчика будут содержать type а также id имущество.

Другие вопросы по тегам