在角度js中设置“$ on('$ destroy')”中的当前复选框值?

时间:2017-07-23 09:52:23

标签: javascript angularjs checkbox angularjs-ng-change

我是角度js的新手。我正在实施复选框,我想在重新加载后导航到另一个页面后阻止重置复选框。现在,当我重新加载页面时,复选框将重置。所以我使用$ on(“$ destroy”)来保存状态。但我无法使用$ on(“$ destroy”)设置复选框当前值。

HTML

<input type="checkbox" id="mycheckbox" class="checkbox style-0"
       name="mycheckbox" ng-model="mycheckbox" data-ng-change="confirm()" />

ANGULAR CONTROLLER:

$scope.confirm= function(){
  if($scope.mycheckbox== false)
  {
    alert("inside unchecked");
  }

  else{
    alert("inside checked");
  }
}
$scope.$on('$destroy',function(){ 
  sessionStorage.date=matchDate;
  sessionStorage.maxValue=realValue;
  sessionStorage.minValue=normalValue;
})

如何在$ on(destroy)中设置或取消选中当前复选框值。我已经在$ on(destroy)中设置了一些值,但在复选框中我很困惑。所以请分享你的想法。你的回答对我很有价值。谢谢。

1 个答案:

答案 0 :(得分:0)

$on('$destroy')表示控制器正在离开,因为页面已卸载。您必须存储复选框的当前状态,就像存储其他数据一样。然后在控制器初始化中,您可以检查复选框是否存储了值,是否有用于初始化复选框而不是默认值。

var myApp = angular.module('myApp',[]);

myApp.controller('Controller', ['$scope', function($scope) {
  $scope.greeting = 'Hola!';
  $scope.checkbox = (sessionStorage.hasOwnProperty('checkbox') ? sessionStorage.checkbox : false);

  $scope.$on('$destroy',function(){ 
    sessionStorage.date=matchDate;
    sessionStorage.maxValue=realValue;
    sessionStorage.minValue=normalValue;
    sessionStorage.checkbox=$scope.checkbox;
  })
}]);