如果我通过单击 127.0.0.1/#/project/1
等链接导航到 View ,则会显示正确的 View 。但是,如果我直接在浏览器中调用此网址(或点击刷新),则不会显示 View 。造成这种行为的原因是什么?
我设置Router的方式如下:
var AppRouter = Backbone.Router.extend({
routes: { },
initialize:function () { }
});
var app = new AppRouter();
然后在每个模块中(我使用 require.js),将添加一个路由和处理程序
app.route("project/:id", "showProject");
难道是路由还没有注册,所以回调不会被调用?
最佳答案
确保在加载/实例化所有路由器并定义路由后调用 Backbone.history.start()
:http://backbonejs.org/#History-start
或者,您可以使用 Backbone.history.stop()
停止历史记录,然后重新启动。然后添加的路线将被选取。
顺便说一句,您可以使用 bool 值 Backbone.History.started
来测试历史记录当前是否已开始(请注意,大写“H”是必需的)。
关于javascript - 直接用 Backbone 调用 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14480206/