复选框选中 持久化与 Angular js 中的本地存储
checkbox checked persistent with local Storage in angular js
我想在重新加载视图时用本地存储使"复选框持久化"不会丢失。
我在 ngStorage 的帮助下保存在本地存储中的值。
这是我的代码和演示 https://jsfiddle.net/alx_lopz/bhgmw7ey/
<div ng-app="myApp">
<div ng-controller="favCtrl">
<div ng-repeat="chip in colores" >
<input type="checkbox" name="{{chip.codigo}}" id="{{chip.codigo}}" ng-model="chip.checked" ng-change="chipsColores()" ng-click="$storage.a = fav">
<label>{{chip.codigo}}</label>
</div>
<div ng-repeat="favorite in $storage.a">
localStorage: {{favorite.codigo}}
</div>
</div>
</div>
我的控制器:
(function(){
angular.module('myApp',['ngStorage'])
.controller('favCtrl',[ '$scope', '$filter', '$localStorage', function ( $scope, $filter, $localStorage) {
$scope.colores = [
{'nombre':'blue', 'codigo':'1111'},
{'nombre':'green', 'codigo':'2222'},
{'nombre':'red', 'codigo':'3333'}
];
$scope.chipsColores = function () {
$scope.fav = $filter('filter')($scope.colores, {checked: true});
}
$scope.$storage = $localStorage.$default({
});
}])
})();
请我在演示中需要您的帮助!谢谢。。。
您可能只想将选中值的映射存储 - 即控制 ID(颜色 ID)到其选中状态。所以关键是只更新地图ng-click
:
$storage.a[chip.codigo] = chip.checked
然后使用 ng-checked="$storage.a[chip.codigo]"
.请记住,首先初始化地图对象也很重要:
$localStorage.$default({
a: {}
});
这是更新的小提琴 https://jsfiddle.net/ciekawy/az2ehwon/
您可以像这样保存数据:
$scope.$storage = $localStorage.$default({
someKey1: value1,
someKey2: value2
});
然后,将使用默认值创建$scope.$storage
对象。如果某些值发生变化,则保存到本地存储中。您只需要将视图中的$storage
对象与一些元素绑定即可。
相关文章:
- Ember.js-接口状态应该存储在哪里
- 将脚本缓存到本地存储的basket.js概念仍然是一个好主意吗
- 在EXT窗体面板中填充EXT JS存储
- 画布/JS存储矢量/位图对象
- 使用 JS 存储/计算日期/时间
- EXT JS存储未从getJson调用正确加载数据
- 使用Meteor.js存储JSON对象
- 用成员函数扩展React.js存储数据结构
- js存储文本值及其点击次数
- Angular.js:存储http.get请求中的变量,以便在不同的$scope函数中全局使用
- 使用mongoose和node.js存储查询后的变量数据
- 在Ext JS存储中反序列化json数据时区分模型类型
- 用d3.js存储一个日期和这3天
- 使用JQuery/JS存储<td>单击()
- 使用. getjson获取数据,使用Knockout.JS存储数据
- Ext Js 存储连接筛选器
- 在 js 存储库上 github 中的构建状态是什么意思
- 获取输入,添加到页面,并使用纯JS存储在localStorage中
- 使用node.js存储图像会产生错误
- 将CSS和JS存储在Android应用程序中,该应用程序具有webview,如phonegap