programing

폼을 편집할 때마다 확인하기 위해 $dirty in angularjs 사용

cafebook 2023. 10. 5. 23:31
반응형

폼을 편집할 때마다 확인하기 위해 $dirty in angularjs 사용

양식의 일부 필드를 작성하여 양식이 편집될 때마다 확인하려고 했습니다.$dirty가 이 작업에 적합하다고 읽었는데 여기서 무엇을 놓쳤는지 알 수가 없습니다.

<!DOCTYPE html>
<html lang="en">
<script src= "http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<body>

<div ng-app="myApp" ng-controller="formCtrl">
  <form name = "myForm" novalidate>
    First Name:<br>
    <input type="text" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>
  <p> is Form dirty? {{isDirty}}<p>
  <p>form = {{user }}</p>
  <p>master = {{master}}</p>
</div>

<script>
var app = angular.module('myApp', []);
app.controller('formCtrl', function($scope) {
    $scope.master = {firstName:"John", lastName:"Doe"};
    $scope.reset = function() {
        $scope.user = angular.copy($scope.master);
    };
    $scope.reset();
    $scope.isDirty = $scope.myForm.$dirty;
});
</script>

</body>
</html>

사용자가 양식을 수정할 때마다 플래그를 더티에서 트루로 만들려고 합니다.감사해요.

당신이 그립습니다name해당 필드에 대해 양식 유효성 검사를 사용할 수 없는 양식 필드의 속성입니다.각 필드에 고유한 이름을 추가해야 해당 필드를 에 추가할 수 있습니다.myForm물건

마크업

  <form name="myForm" novalidate>
    First Name:<br>
    <input type="text" name="firstName" ng-model="user.firstName"><br>
    Last Name:<br>
    <input type="text" name="lastName" ng-model="user.lastName">
    <br><br>
    <button ng-click="reset()">RESET</button>
  </form>

또한 액세스 중입니다.myForm폼 오브젝트(form object)일 뿐인 오브젝트(object), DOM이 렌더링될 때까지 사용할 수 없습니다.$scope.myForm컨트롤러를 시작할 때 정의되지 않을 것입니다. 정말로 액세스하려면$scope.myForm컨트롤러에서 코드를 입력해야 합니다.$timeout실행될$timeout다음 다이제스트 사이클의 함수 코드.

  $timeout(function(){
    $scope.isDirty = $scope.myForm.$dirty;
  });

갱신하다

별도로 유지할 필요가 없습니다. isDirtyflag (따라서 별도의 파일을 변경해야 함)isDirty변경 사항을 반영할 플래그myForm.$dirtyflag.) 대신 사용을 제안합니다.$scope.myForm.$dirty 기치로서그래서 그 표현을 사용합니다.myForm.$dirty, 그리고 이 깃발은 형태가 더러워지면 변할 것입니다.

워킹플렁커

언급URL : https://stackoverflow.com/questions/30096083/using-dirty-in-angularjs-in-order-to-check-whenever-a-form-is-being-edited

반응형