3

バックボーンを使用して、履歴にデータを保存して、バックが呼び出されたときに取得できるようにする方法はありますか?

バックボーンのないアプリケーション I では、アプリケーションは次のようになります。アクションの実行時:

//When doing some action
history.pushState(mycurrentData, title, href)

バックの場合に現在のデータを取得するには、次のようにします。

function popState(event) {  
    if (event.state) { 
        state = event.state;
        //get my data from state
    }
}
window.onpopstate = popState;

バックボーン アプリに同じ動作を適用する必要があります。

ありがとう

4

1 に答える 1

6

現時点では、Backbone を直接使用することはできません。

http://backbonejs.org/docs/backbone.html#section-139

コードのその時点で数行下に表示されます。

window.history[options.replace ? 'replaceState' : 'pushState']({}, document.title, frag);

そのため、常にデータを空のオブジェクトに設定しています。

これを機能させるには、データを独自に保存し、ルートが起動したときにデータを取得する別の方法を使用する必要があります。

個人的には、バックボーンにパッチを適用して、履歴にデータを保存できるようにする価値があると思います。しかし、それはバックボーンの問題リストの考えです:)

編集

他の誰かがこれをやりたかったようで、撃墜されました: https://github.com/documentcloud/backbone/pull/660

于 2012-05-10T14:03:16.237 に答える