我尝试使用带有pushstate的骨干网:
$(document).ready(function(){
var App = Backbone.Router.extend({
routes: {
"/": "homepage",
"/questions": "questions"
},
homepage: function() {
console.log('why');
},
questions: function() {
console.log('this is not working?');
}
});
var the_app = new App();
$("a").click(function(ev) {
the_app.navigate( $(this).attr("href"), true);
return false;
});
Backbone.history.start({pushState: true});
})
问题在于,每当我点击其中一个链接时,
<a href="/"> home </a>
<a href="/questions"> questions</a>
<a href="/justlink"> just link</a>
浏览器中的位置无需重新加载即可更改,但与其关联的功能以及我已在路由中定义的功能不会执行。 知道我做错了什么吗?
答案 0 :(得分:4)
来自fine manual:
延伸
Backbone.Router.extend(properties, [classProperties])
[...]请注意,您要避免在路径定义中使用前导斜杠:
您希望routes
看起来像这样:
routes: {
"": "homepage",
"questions": "questions"
}