0
私は1つのコントローラのデータをセッションストレージに保存するアプリケーションを構築しています。他のコントローラでは$interval
を使用して常にsessionStorage
のように変更を確認します。私は、ユーザーがvm.myData内のデータの一部を編集できるようにしたい場合は、たとえば、彼らはカント、ので、変数を保持しますように私はこのように感じる
$interval(function(){
vm.myData = JSON.parse(sessionStorage.getItem('patient'));
}, 300)
は、見続けるための良い方法ではありませんそれ自体を更新する。
'patient'
が変更されたかどうかをsessionStorageオブジェクトで確認する方法はありますか?私は$watch
機能を使用しようとしましたが、私はそれがどのように機能するのかよく分かりません。 AngularJS $compile Service API Reference -- Life-Cycle Hooksを参照してください
this.$doCheck = function() {
var previousValue;
var currentValue;
previousValue = currentValue;
currentValue = sessionStorage.getItem('patient'));
if (currentValue !== previousValue) {
console.log("patient changed");
};
};
:
それがうまくいくかどうかわからないのですが、なぜ$ watchを使ってrootScope varにセッションストレージを割り当てるのでしょうか。 – alphapilgrim
セッションストレージを常に監視するのではなく、イベントを発生させて聴いてみませんか?あなたのアプリにとっても大きなパフォーマンス向上になるでしょう。 – 31piy
アプリケーションのコピーが1つのみであることを考慮すると、サービス・ゲッター/セッターによってsessionStorage読み取り/書き込み操作を管理できます。この場合、RxJS観測値は有益です。 Btw、$間隔でポーリングはひどいものです、それは各間隔でダイジェストを引き起こします。 – estus