Canjs не маршрутизация

Так что эта ошибка убивает меня, так как я понятия не имею, что происходит, я обновил свою версию canjs до последней версии 2.0.4 с помощью jquery, и маршрутизатор перестал работать. Это не маршрутизация ничего, я пытаюсь с window.location.hash и can.route.attr и не маршрутизация. Меня беспокоит то, что со старой версией, с которой я работал, все работало идеально. Вот код

var Router = can.Control({
    'init': function() {
    },
    'route' : function(){
        window.location.hash = '#!dashboard';
    },
    'dashboard route': function() {
        console.log('dashboard')
    }
});

$(document).ready(function() {
    can.route.ready(false);
    new Router($('body'));
    can.route.ready(true);
});

1 ответ

Решение

К вашему сведению, последняя версия CanJS 2.0.5, выпущенная вчера.

can.route.ready() не работает, как раньше. can.route.ready(true) на самом деле ничего не делает, чтобы предотвратить множественные настройки маршрутов в устаревшем коде. Это несколько объясняет, почему ваш код не инициализирует этот первый переход на панель инструментов #!, Так как вам нужно будет запустить контроллер маршрутизатора перед вызовом ready,

Лучше убрать первый звонок ready и убери аргумент со второго. У меня есть демо-версия этого на http://jsfiddle.net/air_hadoken/5maLu/1/ - нажмите Run, и вы увидите свидетельство каждого слушателя маршрута при срабатывании вашего контроллера.

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