如果我通过点击127.0.0.1/#/project/1
等链接导航到视图,则会显示正确的视图。但是,如果我直接在浏览器中调用此URL(或点击刷新),则不会显示该视图。这种行为可能是什么原因?
我设置路由器的方式如下:
var AppRouter = Backbone.Router.extend({
routes: { },
initialize:function () { }
});
var app = new AppRouter();
然后在每个模块中(我使用的是require.js),将添加一个路由和处理程序
app.route("project/:id", "showProject");
可能是路由尚未注册,因此不会调用回调吗?
答案 0 :(得分:2)
确保在加载/实例化所有路由器并定义路由后调用Backbone.history.start()
:http://backbonejs.org/#History-start
或者,您可以使用Backbone.history.stop()
停止历史记录,然后重新开始。然后将添加添加的路线。
顺便说一下,您可以测试历史记录当前是否以布尔值Backbone.History.started
开始(注意大写“H”是必要的)。