Как установить обязательное поле не обязательным в угловом контроллере после того, как форма передана контроллеру - PullRequest
0 голосов
/ 17 мая 2019

Я установил ng-required="valid" в true в контроллере и в html после передачи формы из события click (например: saveData (форма)) в методе saveData() на основе условия, которое я установил $scope.valid= false, и мне нужнопроверьте form.$valid.

Однако настройка $scope.valid = false не изменяет атрибуты формы ng-required, для которых я изначально установил true.

<form name="customForm" noValidate>
    <input type="text" ng-required="valid"/>
    <button ng-click ="saveData(customForm)"></button>
</form>

в контроллере

$scope.valid = true;

$scope.saveData = function(form){
  $scope.valid = false;
  if(form.$valid){
   // ng-required values set to false and take action
  }
}

1 Ответ

0 голосов
/ 17 мая 2019

Вам не нужно передавать 'customForm' в вашу функцию.Просто объявите это в контроллере.Я также не понимаю, почему вам нужна переменная 'valid'.Проверьте этот рабочий образец:

<div ng-app="myApp" ng-controller="addCtrl">
    <form id="extra-pin" ng-submit="saveData()" name="customForm">
        <input type="text" ng-required="valid" name="test" id="test" 
                    ng-model="test"/>
        <button type="submit">Submit</button>
    </form>
</div>
angular.module('myApp', []).controller('addCtrl', ['$scope' ,function($scope) {
    console.log($scope.customForm);

    $scope.customForm = null;
    $scope.valid = true;

    $scope.saveData = function(){
        //$scope.valid = false;
        //console.log($scope.customForm);

        if($scope.customForm.$valid){
        console.log($scope.customForm);
           // // ng-required values set to false and take action
        }
    }
}]);

ссылка на скрипку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...