Как применить концепцию автосохранения в переключателе в angularjs? - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь автоматически сохранить форму в angularjs с помощью sessionStorage, и он почти достиг этого. Данные, введенные в форму, не должны очищаться при обновлении этой страницы. Но это не работает для радио кнопки. У кого-нибудь может быть идея?

мой HTML, По умолчанию для переключателя установлено значение «Мужчина».

<lable><input type="radio" ng-model="user.gender" value="true" ng-checked='user.gender==true'ng-change="save()" />Female</lable>  
 <lable><input type="radio" ng-model="user.gender" value="false" ng-checked='user.gender==false' ng-change="save()" />Male</lable> 

js файл,

scope.save=function(){
    sessionStorage.setItem('user', JSON.stringify($scope.user));
    var xyz= JSON.parse(sessionStorage.getItem('user'));
}

Вот этот планер

1 Ответ

0 голосов
/ 08 мая 2018

Проверьте этот планкр

angular.module('myApp', [])
 .controller('myCtrl', ['$scope', function($scope) {
   $scope.save = function() {
    sessionStorage.setItem('user', JSON.stringify($scope.user));
   };
   $scope.checkSession = function(){
    if(sessionStorage.getItem('user')){
      $scope.user = JSON.parse(sessionStorage.getItem('user'));
    };
  }
}]);

Я тоже исправил:

ng-checked="user.gender==='true'"

Обратите внимание, что 'true' теперь является строкой после JSON.parse()

HTML

<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myCtrl" ng-init="checkSession()">
  <p>Write something in the input field:</p>
  <lable>
    <input type="radio" ng-model="user.gender" value="true" name="gender" ng-checked="user.gender==='true'" ng-change="save()" />Female</lable>  
 <lable>
   <input type="radio" ng-model="user.gender" value="false" name="gender" ng-checked="user.gender==='false'" ng-change="save()" />Male</lable> 

</div>

<script>
  angular.module('myApp', [])
    .controller('myCtrl', ['$scope', function($scope) {
      $scope.save = function() {
        sessionStorage.setItem('user', JSON.stringify($scope.user));
      };
      $scope.checkSession = function(){
        if(sessionStorage.getItem('user')){
          $scope.user = JSON.parse(sessionStorage.getItem('user'));
        };
      }
    }]);
</script>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...