2

所以这个错误正在杀死我,因为我不知道发生了什么,我将我的 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);
});
4

1 回答 1

3

仅供参考,最新的 CanJS 是 2.0.5,昨天发布。

can.route.ready()不像以前那样工作。 can.route.ready(true)实际上什么都不做,以防止遗留代码中的多个路由设置。这在一定程度上解释了为什么您的代码没有初始化第一次跳转到 #!dashboard,因为您需要在调用ready.

最好删除第一个调用ready并从第二个调用中取出参数。我在http://jsfiddle.net/air_hadoken/5maLu/1/上有一个演示——单击运行,您将看到控制器触发中每个路由侦听器的证据。

于 2014-02-05T22:08:19.790 回答