1

バックボーン ルーターについて質問があります。助けてください:

私はルーターを持っています:

define(['views/index', 'views/login'], function(indexView, loginView) {

    var SelinkRouter = Backbone.Router.extend({

        currentView: null,

        routes: {
            'home': 'home',
            'login': 'login'
        },

        changeView: function(view) {
            if(null != this.currentView)
                this.currentView.undelegateEvents();
            this.currentView = view;
            this.currentView.render();
        },

        home: function() {
            this.changeView(indexView);
        },

        login: function() {
            this.changeView(loginView);
        }
    });

    return new SelinkRouter();
});

ユーザーが初めて私のサイトに到着したとき、「ログイン」ルートがトリガーされ、ログインページに移動し、ログイン後、ユーザーはwindow.location.hash =「home」によって「ホーム」ルートに移動しました。ユーザーは、URL が mysite.com/#home のようなホームページを見ました。これは問題ありませんでした。

問題は、この時点で F5 キーを押すか、別の方法でページを更新すると、「ホーム」ルートが再びトリガーされたにもかかわらず (これで問題ありません)、同時にページ全体がリロードされ、すべての js が再度リロードされたことです。 . アプリケーションが再起動すると、ログインページに戻ります(残念です)。

同じ問題を抱えている人はいますか?ページの更新を停止する必要がありますか? どうやって?

アイデアをありがとう。

4

1 に答える 1

0

ログイン用に別のページを用意するのが最善の選択肢のように思えます。そして、それは警官の答えのように聞こえるかもしれませんが、ログインページは実際にはアプリケーション自体の一部ではなく、アプリケーションへのゲートウェイであるべきだと思います.

于 2013-04-23T13:56:01.147 に答える