Ich versuche, Funktionen zum Speichern und Abrufen von Fensterstatus zu schreiben, kann aber nicht herausfinden, wie das geht. Die Idee ist, dass Benutzer jederzeit einen "Schnappschuss" des Bildschirms machen können und beim nächsten Login in die App ihn zurückholen kann, außerdem kann er beliebig viele Schnappschüsse speichern. Zum Beispiel: auf der Seite habe ich 4 verschiedene geschlossene Panels mit einer Art von Filtern und 6 verschiedenen Tabs mit Gitter innerhalb (standardmäßig ist die erste Registerkarte geöffnet). Nun, sagen wir, ich habe 2 von 4 Panels geöffnet, einige Filter gesetzt und mit dem 5. Tab gearbeitet. Ich möchte den gesamten Fensterstatus speichern können (zum Beispiel "Mein Status 1"), und wenn ich mich das nächste Mal anmelde, wähle einfach "Mein Zustand 1" und bekomme meinen Fensterstatus zurück. ich bereits speichern und alle Gittereigenschaften im DB mit folgenden Funktionen abrufen:Wie kann ich den Fensterstatus speichern und abrufen?
Store:
$scope.state = {}
$scope.saveStateString = function(store) {
$scope.state = JSON.stringify($scope.gridApi.saveState.save(store));
// console.log("function save state string")
};
abrufen
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);
};
Vorerst Ich versuche, Fensterstatus in localstorage zu speichern und zu tun nächstes:
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);
};
aber ich bekomme diesen Fehler
angular.js:13708 TypeError: Converting circular structure to JSON at Object.stringify (native)
ich klar verstehen, warum ich diesen Fehler bin immer, es Ursache JSON akzeptiert keine kreisförmige Objekte - Objekte, die auf sich selbst verweisen auch sehe ich aus console.log(_window)
, wie das „Fenster“, viele Objekte im Inneren hat so Ich entschied mich zu fragen: Wie Fenster Status speichern und abrufen?
Was genau wollen Sie von 'Fenster'? Scheint wie ein seltsamer Ort, um nach dem Stand deiner eigenen Anwendung zu suchen. – charlietfl
@charlietfl Ja, ich warte auf das Verhalten von $ scope. $ Watch, du beobachtest den Zustand deiner Variablen und kannst diff-Zustände davon speichern und dann bekommen zurück – antonyboom
Sie benötigen lediglich einen eckigen Service, der alle Ihre App-Status speichert. Dann, wenn der Staat sich ändert, speichern Sie es. Würde nichts mit 'Fenster' zu tun haben – charlietfl