2

次のようにルーターをセットアップしています。

var Router = Backbone.Router.extend({
    routes: {
        "/SomeApp/Scene/:id": "main",
    }

    main: function (sceneId) {
        console.log(sceneId);
    }
});

ここで初期化されます:

$(document).ready(function () {
    var router = new Router();
    Backbone.history.start();
});

にアクセスすると、オブジェクトhttp://localhost:12345/SomeApp/Scene/5からのルートroutesが一致せmain()ず、呼び出されません。

空のキーを使用してルートを作成すると、次のようになります。

routes: {
    "": "main",
}

次に main() が呼び出されますが、もちろんパラメーターはありません。

ルート パラメータがどのように機能するか、および/またはルートをどのように設定する必要があるかについて、私が誤解していることを誰か指摘できますか?

ありがとう。

編集

最初に述べておくべき重要な点は、アプリがサイトのルートからではなく、サーバー上の /SomeApp/Scene から提供されていることです。

4

2 に答える 2

0

backbone.js の前に underscore.js を含めるのを忘れていませんか? ここでの例は機能します

http://imstillreallybored.com/bb.html#search/test

var Router = Backbone.Router.extend({
                routes:{
                    "search/:query": "search"
                },
                search: function(search){
                    alert('search ' + search);
                }
});

var app_router = new Router();
Backbone.history.start();
//app_router.navigate('#search/' + $.trim($(this).val()));
于 2013-06-03T13:23:20.393 に答える