我是一个新的角度js和实现单页应用程序。我已经实现了一个复选框,当我选中复选框时,我希望在重新加载后保持复选框的状态。因此,当我单击复选框,然后通过角度js中的$on($destroy)将状态(选中或未选中)存储在会话中。
我见过一个链接Keep checkbox checked after page refresh AngularJS,但这在我的情况下行不通。
我正在分享我的示例代码。
 <input type="checkbox" id="mycheckbox" class="checkbox style-0" name="mycheckbox" ng-model="mycheckbox" data-ng-change="confirm()" autocomplete="off"/>控制器:
$scope.confirm = function(){
  if($scope.mycheckbox== false)
  {
    sessionStorage.setItem("confirmCheck", $scope.mycheckbox);        
  }
  if($scope.mycheckbox== true){
    sessionStorage.setItem("confirmCheck", $scope.mycheckbox);       
  }
}
if(sessionStorage.confirmCheck == "true"){      
   $('#mycheckbox').prop('checked',true);
}else {
   $('#mycheckbox').prop('checked',false);
}
$scope.$on('$destroy',function(){
  sessionStorage.confirmCheck=sessionStorage.getItem('confirmCheck');
     })

我能够在会话中存储复选框的状态,但我无法在HTML中更改状态--我导航到另一个页面并返回到以前的页面,然后值在角控制器中持久化,但在page.When页面中没有更新。请分享你的想法。提前谢谢。
发布于 2017-07-23 17:19:55
我真的建议你避免把角和jQuery混在一起,而不是那样,你会更喜欢用角度来完成工作。
1)将会话存储检查值保存在可以从角模板访问的位置。
$scope.isChecked = sessionStorage.getItem('confirmCheck');第二,使用角度指令ngChecked。
<input type="checkbox" ng-checked="isChecked"></input>https://stackoverflow.com/questions/45267686
复制相似问题