私は、ウィンドウの状態を格納して取り出すための関数を記述しようとしていますが、その方法を理解することはできません。アイデアは、ユーザーが画面の「スナップショット」をいつでも作成できることと、アプリに次回ログインして戻すことができ、必要な数だけスナップショットを保存できるということです。 例:ページには、いくつかの種類のフィルタとグリッド内の6つの異なるタブを持つ4つの閉じたパネルがあります(デフォルトでは、最初のタブが開きます)。今度は、4つのパネルのうち2つを開き、いくつかのフィルタを設定し、5番目のタブで作業したとしましょう。私はウィンドウ全体の状態(例えば「私の状態1」)を保存することができ、次回にログインしたときに「私の状態1」を選択してウィンドウ状態を取り戻すことができます。 私はすでに保存し、次の機能をDB内のすべてのグリッドプロパティを取得:ウィンドウの状態を保存および取得する方法は?
ストア:
$scope.state = {}
$scope.saveStateString = function(store) {
$scope.state = JSON.stringify($scope.gridApi.saveState.save(store));
// console.log("function save state string")
};
は、今私はのlocalStorageにウィンドウ状態を保存しようとしているため
if(objNode.folderId){
eventService.singleFilter(nodeId)
.then(function (res) {
if (res.body){
$scope.restoreStateString(JSON.parse(res.body));
}
});
}
else if (typeof objNode.folderId === "undefined"){
return false
}
$scope.restoreStateString = function(restore) {
$scope.gridApi.saveState.restore($scope, restore);
};
を取得してみませんか次:
var storeValue = null;
var keyName = null;
var _window = {};
$scope.storeWorkspace = function(){
for (prop in window)
_window[prop] = window[prop];
storeValue = JSON.stringify(_window)
keyName = prompt("put your key name");
localStorage.setItem(keyName, storeValue);
};
このエラーが発生する
angular.js:13708 TypeError: Converting circular structure to JSON at Object.stringify (native)
円形オブジェクト私ははっきりと、理解し、私はこのエラーを取得していますなぜ、JSON原因それは受け入れていない - 「ウィンドウ」は内部に多くのオブジェクトを持っているかも私は console.log(_window)
から見る自分自身を参照するオブジェクトを、そう私は質問することにしました: ウィンドウの状態を保存して取得する方法は?
「ウィンドウ」から正確に何を求めていますか? – charlietfl
@charlietflええ、私は$ scopeのような動作を待っています。$ watch、あなたは変数の状態を監視していて、それのdiff状態を保存してから取得することができます戻る – antonyboom
すべてのアプリケーションの状態を保存する角度サービスが必要です。その後、状態が変更されるたびにストアします。 「窓」とは何の関係もないでしょう – charlietfl