Backbone.js 主干路由器未调度?
我是主干网0.9.1的新手。 我发现当我更改哈希时,我无法在我的演示中触发哈希更改。 我的URL是http://[…]/backbone/#help。我想我应该收到一条警告信息“帮助”,但我不是Backbone.js 主干路由器未调度?,backbone.js,router,Backbone.js,Router,我是主干网0.9.1的新手。 我发现当我更改哈希时,我无法在我的演示中触发哈希更改。 我的URL是http://[…]/backbone/#help。我想我应该收到一条警告信息“帮助”,但我不是 $(function() { var App = { Controllers:{}, initialize: function(){ new App.Controllers.Routes(); var h = new
$(function() {
var App = {
Controllers:{},
initialize: function(){
new App.Controllers.Routes();
var h = new Backbone.History();
h.start({root: '/backbone/'});
}
};
App.Controllers.Routes = Backbone.Router.extend({
routes: {
"help": "help",
"search/:query": "search",
},
help: function() {
alert("help");
},
search: function(query) {
alert("search");
}
});
App.initialize();
});
是否存在误解或误用?您不需要自己实例化历史对象。此外,如果未使用pushstate,则不需要在开始选项中指定
根目录
因此,您的初始化方法应该如下所示:
initialize: function(){
new App.Controllers.Routes();
Backbone.history.start();
}
感谢您的帮助~但在主干网0.9.1中,当我调用Backbone.history.start()时,主干网的原型中似乎没有历史记录;收到错误消息:Uncaught TypeError:无法调用undefined的方法“start”。看起来路由器在0.9.1中有一些更改?这不是0.9.x中的更改,并且.history属性从未成为主干对象原型的一部分。在实例化路由器并在其上定义路由后,将自动添加Backbone.history属性。如果出现此错误,则表示路由器未实例化或配置不正确。请将初始化函数更改为new App.Controller.Routes();Backbone.history.start();问题解决了。