2017-06-14 5 views
1

私のAngularJSアプリケーションでは、1つのwebsocket接続を使用するために2つのウィンドウがlocalStorageを介して通信します。メインウィンドウは、サーバーからの受信データをlocalStorageプロパティに入れるメッセージを待ち受けます。子ウィンドウは、このプロパティで角度$ watchを使用して、着信データをグリッドに入れます。異なるウィンドウと単一の接続の使用が必要です。AngularJsアプリは別のウィンドウからlocalStorageの変更を聞くことができません

問題は、ブラウザ開発ツール(F12)が開いていない限り、子ウィンドウのコントローラがlocalStorageプロパティを見ることができないように見えることです。

この問題を解決するにはどうすればよいですか?

+0

この質問が愚かな場合は申し訳ありません。両方とも同じ起源の窓ですか? – aorfevre

+0

ストレージの管理方法ngStorageを使用していますか?または直接jsストレージ – aorfevre

+0

'$ watch'関数を共有できますか? –

答えて

1

私は、localstorageとlocalforage.jsを使用している角度のあるプロジェクトもあります。この文は実際に開発ツールにあなたの問題を絞り込んでいますか?いいえ:

"ブラウザ開発ツール(F12)が開かないうちに"

このチェックボックスがオフになっていることを確認してください。

enter image description here

ページを再読み込みして、もう一度試してください。

それとも、このソリューションを試してみてください:Using localstorage checks in a different windowwindow.postMessage()

を使用して私たちのQAチームはのlocalStorageとのオープン2つのウィンドウが持つ起因するいくつかのバグを報告し、そのデータアクセスがしっかりと同期させることがあります。そのため、子ウィンドウは、ローカルストレージを扱う親にデータを送信します。

+0

ありがとうございますが、「チェックを無効にする」のチェックを外しても機能しませんでした。私はよく説明します: 子ウィンドウを開くと、グリッドはlocalStorage内のデータでいっぱいになりますが、更新を取得することはできません。次に、開発者用ツールを開くと、更新プログラムの入手が開始されます。次に、子ウィンドウのフォーカスを失った場合、更新を取得しません。デベロッパーツールを再び開くと、デベロッパーツールが再び機能し始めます。 – retrobitguy

+0

ここに記載されているのと同じバグがありますか?https://stackoverflow.com/a/42975984/6254070どのブラウザを使用していますか? – smurtagh

+0

ありがとうございます! postMessage()ソリューションが機能しました。 – retrobitguy

関連する問題