angularjs表单自定义验证指示

angularjs表单自定义验证指示,angularjs,validation,angularjs-directive,Angularjs,Validation,Angularjs Directive,在第一个字段更改后,我尝试将所有字段设置为错误。但我不明白什么是错的,为什么第二个字段从不出错 这是一个简单的例子 和代码 前面部分: 你的标题是Angular2,但这显然是angularJS。。。。这是一个打字错误吗(我的意思是标题)?主要的想法是在angular 2中另一个字段被更改后使一个字段出错,但例如,我选择了最简单的方法将其放在W3上。我真的是个新手,如果我犯了错误,请告诉我。谢谢。是的,你的代码根本不是Angular2,而是AngularJS。那么你想做什么,Angular(2)

在第一个字段更改后,我尝试将所有字段设置为错误。但我不明白什么是错的,为什么第二个字段从不出错

这是一个简单的例子 和代码
前面部分:


你的标题是Angular2,但这显然是angularJS。。。。这是一个打字错误吗(我的意思是标题)?主要的想法是在angular 2中另一个字段被更改后使一个字段出错,但例如,我选择了最简单的方法将其放在W3上。我真的是个新手,如果我犯了错误,请告诉我。谢谢。是的,你的代码根本不是Angular2,而是AngularJS。那么你想做什么,Angular(2)还是AngularJS?:)只是想知道,如果你想做AngularJS,请更改你的标题并从你的问题中删除Angular2标记,这样就不会有混淆:)
<form name="mainform" id="mainform">
    <md-input-container class="md-block">
      <label>first</label>
      <input name="capital" ng-model="capital" validatecapitalparts>
    </md-input-container>

    <div layout-gt-sm="row">
    <md-input-container class="md-block" flex-gt-sm>
      <label>second</label>
      <input name="onecost" ng-model="onecost">
    </md-input-container>

</form> 

<h1>{{mainform.capital.$valid}}</h1>
<h1>{{mainform.onecost.$valid}}</h1>
var app = angular.module('myApp', []);
app.directive('validatecapitalparts', function() {

      return {

        require: 'ngModel',
        link: function(scope, element, attrs, ngModelCtrl) {

            ngModelCtrl.$parsers.unshift(function (viewValue) {
                ngModelCtrl.$setValidity('onecost', false);
                ngModelCtrl.$setValidity('capital', false);
                return viewValue;
            });

            ngModelCtrl.$formatters.unshift(function (modelValue) {
                ngModelCtrl.$setValidity('onecost', false);
                ngModelCtrl.$setValidity('capital', false);
                return modelValue;
            });


        } 
      };
    });