保存/恢复angularjs的几个作用域变量
Saving/Restoring angularjs several scope variables
我有两个不同的视图,但它们都只有一个控制器,因为它们有几个共同点。但是,当加载第二个视图时,存储在第一个视图范围内的所有数据都将丢失。对于这个问题,我在这里找到了一个很好的解决方案
只有当范围内的数据数量很少时,这个解决方案才看起来不错,而我的情况并非如此。我有几个数据存储在控制器范围。所以我想有一种方法来迭代数据(只有我保存的数据不是角的数据),但我不确定我如何迭代这些值。任何想法吗?
我有一些类似的要求,我已经为相同的目的创建了一个指令
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个参数:key/value,然后在作用域中加载该值时该怎么做…因此,一个on-load回调函数,它将在$scope
中加载键后调用我使用$sessionStorage,以保持值甚至在页面刷新之间
相关文章:
- 两个指令创建新的继承的和隔离的作用域-元素得到哪个
- 这两个关于 JavaScript 作用域链的例子有什么区别?
- 访问多个指令的隔离作用域
- 如何在angularjs中将多个作用域变量传递到自定义指令中
- 同一指令的多个角度实例,作用域不是孤立的
- JavaScript Cookie作用域更改留下2个名称相同但将读取的Cookie
- 作用域中的publish_actions未触发第二个对话框
- AngularJ为多个DOM/作用域提供一个控制器
- 从多个控制器上的指令访问作用域的正确方法
- JQuery UI 可拖放,具有多个作用域
- Angularjs 连接两个作用域数组
- 我怎么能在Angular控制器中有两个$作用域变量呢?
- 根据用户输入声明多个作用域
- 保存/恢复angularjs的几个作用域变量
- AngularJS:通过服务在两个作用域/控制器之间进行双向通信
- 像Rhino一样,对多个作用域编译一次
- 为什么初始化几个变量会导致作用域泄漏
- Javascript的几个函数中的作用域
- 上和多个作用域
- 深度拷贝(解绑定)两个作用域变量——AngularJS