【发布时间】:2015-02-23 17:21:37
【问题描述】:
我试图在用户输入 URL (whatever.com)/questions/new 时触发主干事件。
我的路由器如下所示:
define(['backbone'],function(BackBone){
var routeExtend = Backbone.Router.extend({
routes: {
"": "home",
"questions/new": 'newQuestion'
},
});
var initialize = function(){
var Router = new routeExtend();
Router.on('route:newQuestion', function() {
console.log('new question');
});
BackBone.history.start();
return Router;
}
return {initialize:initialize};
});
如果我在我的应用程序中调用 router.navigate,事件会正常触发。
但是,如果“questions/new”是提供给网络浏览器的初始 URL,我希望能够触发“on”事件。有没有办法做到这一点?
【问题讨论】:
-
你传入 BackBone,但在第 3 行扩展 Backbone.Router,注意你的情况
-
嗨乔,请详细说明。
-
第 1 行,您将 require 调用的结果分配给变量 BackBone (CamelCase),然后在第 3 行使用 Backbone,它必须是未定义的或在其他地方全局定义的,但不是与您向下使用的 BackBone 相同。
-
感谢您的提醒。修复了拼写问题。不过,这并不能解决路由问题,知道我的要求是否可行吗?
标签: javascript backbone.js router