2016-11-01 9 views
0

私はAngular 2で簡単な検索エンジンを実装しようとしています。検索フィールドの下にある外部URL(アプリの一部ではないページ)の検索結果フィールドのリストを持つコンポーネントがあります。角2:ナビゲーションの向こう側にあるアプリケーションの状態を外部ページに保存するにはどうすればよいですか?

ユーザーが検索テキストを入力し、サービスコールの結果をバックグラウンドで取得し、結果リンクの1つをクリックして外部サイトに移動したとします。その後、他の結果を試すことにしたので、ブラウザの[戻る]ボタンをクリックして検索結果に戻ります。しかし問題は、この時点では、アプリケーション全体が再初期化されるということです。これは、以前の結果がなくなったことを意味し、あたかも最初に開いたかのように空の検索フィールドを表示するだけです。

私の質問は、どうすれば外部サイトへのナビゲーションを介してアプリの状態を保持できますか?私はルータを使用し、ルートに検索文字列を格納する必要がありますか?または、ユーザーがアプリケーションに戻ったときに状態を何とか保存して復元する必要がありますか?このユースケースを処理するための推奨される方法は何ですか?

+0

*ルータで検索文字列をルートに保存する必要はありますか?はい。 –

答えて

0

localstorageに状態を保存できます。たとえば、検索を行うと、このようなURLに移動できます。

yourdomain.com/search?query=string 

これは角度2のルートを表します。このルートは検索を行います。 次に、クエリをキーとして使用し、そのキーの状態(結果)を保存します。そのURLに再度移動すると、そのキーでlocalstorageから状態をロードできます。 もちろん、古い結果をクリアする処理が必要ですが、それは詳細です。

関連する問題