gpt4 book ai didi

javascript - 保存/恢复 angularjs 的几个作用域变量

转载 作者:行者123 更新时间:2023-11-28 01:07:55 24 4
gpt4 key购买 nike

我有两种不同的观点,但对于它们两者来说,只有一个 Controller ,因为它们有几个共同点。但是,当加载第二个 View 时,第一个 View 范围内存储的所有数据都会丢失。对于这个问题我找到了这个非常好的解决方案here

只有当我的范围内的数据很少时,这个解决方案看起来才不错,但我的情况并非如此。我在 Controller 范围内存储了一些数据。所以我想有一种方法来迭代数据(只有我保存的数据而不是 Angular 数据),但我不确定如何迭代这些值。有什么想法吗?

最佳答案

我有一些类似的要求,并且我出于相同目的创建了一个指令

csapp.directive("csDataStore", ["$location", "$sessionStorage", function ($location, $sessionStorage) {

var controllerFunction = ["$scope", function ($scope) {

var enter = function () {
var storedValue = $sessionStorage[$scope.key];
if (angular.isDefined(storedValue)) $scope.value = storedValue;
$scope.onLoad();
};
enter();

var exit = function () {
$sessionStorage[$scope.key] = $scope.value;
};
$scope.$on("$destroy", function () { exit(); });
}];

return {
restrict: "E",
scope: { key: '@', value: '=', onLoad: '&' },
controller: controllerFunction
};
}]);

我使用这样的指令

<cs-data-store key="stkh.view" value="filter" on-load="loadData()"></cs-data-store>

所以我们这里有 3 个参数:键/值,然后在范围内加载该值时要做什么...所以加载回调函数,在键加载后将调用该函数$范围

我使用 $sessionStorage,在页面刷新之间保持值均匀......

关于javascript - 保存/恢复 angularjs 的几个作用域变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com