0

複雑なマルチレベルの継承アプリがあり、ナビゲーションにBackbone.Routerを使用したかったのですが、期待どおりに機能しません。

アプリケーションのアドレスがルートディレクトリの下にありません

このように:http: //www.domain.com/App

BBのルーティングを使用したかった

ここにいくつかのコードがあります:

$(function () {
    var SayfaController = Backbone.Router.extend({
        routes: {
            "": "home", 
            "sayfa/:sayfaNo": "sayfa" 
        },
        initialize: function () {
          console.log('THIS WORKS');
        },
        home: function () {
           console.log('THIS DONT FIRE');
        },
        sayfa: function (sayfa) {
            console.log("NEITHER THIS FIRES");
            console.log(sayfa);
        }
    });

    var sayfaController = new SayfaController();

    Backbone.history.start({pushState: true});

    ....
});

initializeメソッドは機能しますが、次のようなリンクをクリックしてもイベントは発生しません。

<a href="http://www.domain.com/App/#/sayfa/6">Click</a>

またはブラウザのナビゲーションバーを変更します

私は何を間違っているのですか

4

2 に答える 2

0

一見すると、アプリのルートはドメインのルートから提供されていないため、アプリのルートを指定する必要があるように見えます。Backboneドキュメントを参照してくださいRE:Backbone.history:

アプリケーションがドメインのルートURL/から提供されていない場合は、オプションとして、ルートが実際にどこにあるかを履歴に必ず伝えてください:Backbone.history.start({pushState:true、root: "/ public / search / "})

試すBackbone.history.start({pushState: true, root: "/App/"});

于 2013-03-21T15:34:07.137 に答える
0

種類のURLで機能させる方法がわかりません

http://www.domain.com/App/#/sayfa/6

しかし、以下の種類では機能します。

http://www.domain.com/App#sayfa/6
http://www.domain.com/App

使用する

 Backbone.history.start({
            root : "/App"
        });

これがjsfiddle http://jsfiddle.net/nEmeL/4/です

于 2013-03-22T20:30:30.433 に答える