骨干路由器没有接收功能

时间:2012-11-11 19:33:41

标签: backbone.js backbone-routing

我尝试使用带有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>

浏览器中的位置无需重新加载即可更改,但与其关联的功能以及我已在路由中定义的功能不会执行。 知道我做错了什么吗?

1 个答案:

答案 0 :(得分:4)

来自fine manual

  

延伸 Backbone.Router.extend(properties, [classProperties])

     

[...]请注意,您要避免在路径定义中使用前导斜杠:

您希望routes看起来像这样:

routes: {
    "":            "homepage",
    "questions":   "questions"
}

演示:http://jsfiddle.net/ambiguous/ybPcg/