如何将范围变量值作为 FormName 传递给 ng-click 参数并获取 FormName.$valid 和 For

how to pass scope variable value as FormName to ng-click param and get FormName.$valid and FormName.$dirty view angularjs

本文关键字:FormName 参数 ng-click 获取 For valid 范围 变量值      更新时间:2023-09-26

如何将范围变量作为ng-click参数的"FormName"传递,以在View angularjs中获取FormName.$valid和FormName.$dirty。

例:

var myApp = angular.module('myApp', []);
myApp.controller('Main', ['$scope',function($scope){
    $scope.FormName = 'FormNameValidation';
    $scope.showFormValidation = function(statusValid, statusDirty)
    {
     $scope.FormNameValidationStatus = statusValid;
     $scope.FormNameDirtyStatus = statusDirty;
    }
}]);
<form name="FormName" novalidate>
    <div ng-app='myApp' ng-controller="Main">
        <button type="button" ng-click="showFormValidation(FormName.$valid, FormName.$dirty)">Click</button>
        {{FormNameValidationStatus}}
        {{FormNameDirtyStatus}}
    </div>
</form>

输出:未定义未定义

问题是表单元素没有包含在定义 ngApp 指令的元素中。 如果您重新排列元素,使表单是具有 ng-app 属性的div 的后代,您应该得到您想要的

  var myApp = angular.module('myApp', []);
  myApp.controller('Main', ['$scope',
    function($scope) {
      $scope.FormName = 'FormNameValidation';
      $scope.showFormValidation = function(statusValid, statusDirty) {
        $scope.FormNameValidationStatus = statusValid;
        $scope.FormNameDirtyStatus = statusDirty;
      }
    }
  ]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="style.css" />
  <script src="script.js"></script>
</head>
<body>
  <h1>Form State</h1>
  <div ng-app="myApp" ng-controller="Main">
    <form name="FormName" novalidate="">
      <button type="button" ng-click="showFormValidation(FormName.$valid, FormName.$dirty)">Click</button>
      {{FormNameValidationStatus}} {{FormNameDirtyStatus}}
    </form>
  </div>
</body>
</html>