Как реализовать роутер в 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
имущество.