javascript - 直接用 Backbone 调用 url

标签 javascript backbone.js

如果我通过单击 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/

相关文章:

javascript - 可以在 React 无状态组件中定义函数吗?

javascript - Bootstrap 选择自定义动态选项

javascript If/Else 循环;异步问题

backbone.js - Backbone中的项目 View 和布局中的额外div

javascript - 如何正确使用 XHR 创建自己的 Angular 服务?

Javascript - 将数字转换为两位小数同时保留零

javascript - Backbone : is 100 + Views ok?

javascript - Backbone-relational 不能实例化两个 RelationalModel 对象

javascript - 子对象调用兄弟对象的方法

javascript - 在 Handlebar JS 中声明公共(public)变量