3

プッシュステートでバックボーンを使用しようとしました:

$(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>

ブラウザ内の場所はリロードせずに変更されますが、それに関連付けられ、ルートですでに定義されている関数は実行されません。私が間違ったことをしたことはありますか?

4

1 に答える 1

4

細かいマニュアルから:

拡張する Backbone.Router.extend(properties, [classProperties])

[...] ルート定義で先頭のスラッシュを使用しないようにする必要があることに注意してください。

routes次のように表示します。

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

デモ: http://jsfiddle.net/ambiguous/ybPcg/

于 2012-11-11T19:51:50.207 に答える