Eli*_*Eli 6 javascript browser-history backbone.js
我想我缺少一些关于Backbone路由功能的基础知识.
我正在构建一个应用程序,它看起来像这样:
file: app.js
App = {}
App.nav = new Backbone.Router;
require('app/controller');
Run Code Online (Sandbox Code Playgroud)
file: controller.js
App.nav.route('home', 'home', function () {
console.log("Home Activated");
});
App.navigate('home');
Run Code Online (Sandbox Code Playgroud)
此时浏览器将地址栏中的URL更改为/home但没有任何反应,我没有收到Home Activated控制台消息.
我已经尝试使用自己的路由类(即Backbone.Router.extend({})),但我真的没有看到它的一点,因为我仍然需要初始化它,我想在我的应用程序中使用所有模块/控制器添加的中央历史/导航路由到它而不是为每个控制器创建一个路由器.
我究竟做错了什么?
Psy*_*urn 15
http://documentcloud.github.com/backbone/#Router-navigate
从文档:
如果您还想调用路由功能,请将trigger选项设置为true.
但正如OlliM所写,你需要首先激活历史!
所以你的答案应该是:
Backbone.history.start();
App.nav.navigate('home', {trigger: true});
Run Code Online (Sandbox Code Playgroud)
编辑:忘了把"导航"
要使路由工作,您需要Backbone.history.start()在设置路由后调用(基本上在完成其他所有操作后).请参阅:http://documentcloud.github.com/backbone/#History-start
| 归档时间: |
|
| 查看次数: |
12105 次 |
| 最近记录: |