使用localstorage和ng-Change不起作用

时间:2015-03-23 14:15:40

标签: javascript angularjs html5

我在下面写了代码

  var checkLightOn = $localstorage.getObject('LightOn');

  if(checkLightOn == true){
    $scope.LightOn = true;
  }else{
    $scope.LightOn = false;
  }

  $scope.checked = function(){
    if($scope.LightOn){
      $localstorage.set('LightOn','');
    }else{
      $localstorage.set('LightOn',true);
    }
  }

并希望我的切换与localstorage一起工作正常。但是第二次点击不会改变localstorage的值,它只能用于刷新。我不知道为什么。我在ng-change中添加了alert(),每次点击它都会触发。

视图

<input ng-model="LightOn " ng-change="checked()" type="checkbox">

2 个答案:

答案 0 :(得分:0)

您还需要更改LightOn范围变量,而不仅仅是localStorage,请尝试:

  $scope.checked = function(){
    if($scope.LightOn){
      $localstorage.set('LightOn','');
    }else{
      $localstorage.set('LightOn',true);
    }
    $scope.LightOn = !$scope.LightOn;
  }

答案 1 :(得分:0)

我认为$ localstorage可能出现问题。我在这里有一个例子(基于你的代码),它运作良好。 无需重新分配$ scope.LightOn

Check this Link:

https://jsfiddle.net/0qwtbppf/1/