保持复选框angularjs的状态

时间:2014-04-28 15:39:57

标签: angularjs checkbox local-storage

我有这个复选框。

<div ng-repeat="setting in settings">
    <input type="checkbox" name="setting.name" ng-model="setting.value">{{setting.name}}

并在控制器中

$scope.settings = [{
           name: 'OrderNr',
           value: ''
       }, {
           name: 'CustomerNr',
           value: ''
       }, {
           name: 'CatalogName',
           value: ''
       }, {
           name: 'OrderDate',
           value: ''
       }, {
           name: 'OrderState',
           value: ''
       }];

当我点击保存按钮时,我将此功能称为本地存储中的商店数据

$scope.saveSetting = function() {
    var json = angular.toJson($scope.settings);
    localStorageService.add('settings',json);

};

我在重新加载页面时如何保留设置?

3 个答案:

答案 0 :(得分:2)

如何使用$ cookies。

查看angularjs docs

基本上您需要做的就是将服务作为依赖项注入控制器并将其用作对象。

在您的控制器中:

$scope.saveSetting = function() {
    $cookies.settings = $scope.settings;
};

并使用它们:

$scope.loadSetting = function() {
     $scope.settings = $cookies.settings;
};

如果它适合您,请告诉我。

答案 1 :(得分:0)

我会使用ngStorage指令。我在我的应用程序中使用它。您只需使用ngStorage将设置设置为存储,然后在控制器加载时通过ngStorage设置设置的初始值。

https://github.com/gsklee/ngStorage

答案 2 :(得分:0)

您只需在控制器加载时设置$ scope.settings。

var myCtrl = function($scope) {
    if(localStorage.settings) {
        $scope.settings = angular.fromJson(localStorage.settings);
    }
}