如何将范围变量作为ng-click
参数的 FormName 传递给{em> angularjs 中的FormName.$valid
和FormName.$dirty
。
示例:
var myApp = angular.module('myApp', []);
myApp.controller('Main', ['$scope',
function($scope) {
$scope.FormName = 'FormNameValidation';
$scope.showFormValidation = function(statusValid, statusDirty) {
console.log(statusValid, statusDirty);
$scope.FormNameValidationStatus = statusValid;
$scope.FormNameDirtyStatus = statusDirty;
}
}
]);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='myApp' ng-controller="Main">
<form name="MainFormName" novalidate>
<button type="button" ng-click="showFormValidation(FormName.$valid, FormName.$dirty)">Click</button>
<form name="FormNameValidation" novalidate>
<div class="col-sm-6">
<div class="form-group" ng-class="{ 'has-error' : FormNameValidation.type.$invalid }">
<label class="col-sm-4 red" for="form-field-1-1">Type</label>
<div class="col-sm-8" ng-class="{ 'has-error' : type.$invalid }">
<select convert-number ng-required='true' class="form-control" id="type" name="type" ng-model="Type" ng-disabled="1 == 0">
<option value=""></option>
<option value="1">A</option>
<option value="2">B</option>
</select>
<p ng-show="FormNameValidation.inctype.$error.required" class="help-block col-xs-12 col-sm-reset inline">Type is Required</p>
</div>
</div>
</form>
{{FormNameValidationStatus}} {{FormNameDirtyStatus}}
</form>
</div>
&#13;
输出:
undefined undefined
答案 0 :(得分:1)
有几个问题......
首先,HTML5不支持嵌套表单元素,但使用ng-form指令时使用angular。
<form name="FormNameValidation" novalidate></form>
变为
<ng-form name="FormNameValidation" novalidate></ng-form>
其次,您只需在标记中命名您的表单。
<form name="MainFormName" novalidate>
变为
<form name="FormName" novalidate>
这将您的控制器功能简化为:
$scope.showFormValidation = function(statusValid, statusDirty) {
$scope.FormNameValidationStatus = statusValid;
$scope.FormNameDirtyStatus = statusDirty;
};
您的HTML中也有不匹配的打开/关闭代码。
这是一个有效的django-registration-redux