Angularjs 角材料md选择验证问题

Angularjs 角材料md选择验证问题,angularjs,validation,angular-material,Angularjs,Validation,Angular Material,我的表单上有几个md select下拉列表,其中许多都有验证。验证在所有下拉列表上都正常工作,但以下内容除外,这不会阻止表单在为空时提交: <md-input-container class="form-input-container" flex="15"> <label>NDRA*</label> <md-select id="registration-informatio

我的表单上有几个md select下拉列表,其中许多都有验证。验证在所有下拉列表上都正常工作,但以下内容除外,这不会阻止表单在为空时提交:

    <md-input-container class="form-input-container"
                        flex="15">
      <label>NDRA*</label>
      <md-select id="registration-information-ndra"
                 name="ndra"
                 ng-model="vm.registration.code"
                 ng-class="{'validation-error': newForm.ndra.$error.required && newForm.$submitted}"
                 ng-required="vm.validation.ndra">
        <md-option ng-repeat="code in vm.dropdowns.codes"
                   value="{{code}}">
          {{code}}
        </md-option>
      </md-select>
    </md-input-container>

{“$validators”:{},“$asyncValidators”:{},“$parsers”:[],“$formatters”:[],“$viewChangeListeners”:[],“$untouched”:true,“$touched”:false,“$pristine”:true,“$dirty”:false,“$valid”:false,$invalid”:true,“$error”:{“必需的”:true,“$name”:“registrationType”,“$options”:null}

我认为您的
vm.validation.ndra
返回的与您的
vm.validation.registrationType
返回的相反。这样就不需要选择

如果你看看被退回的东西

NDRA

vs

注册类型

他们完全相反


您应该检查以确保在
vm.validation.ndra

中获得正确的真实值,只需将
ng required
中的值更改为
false
,并在以下链接中查看结果。我认为
vm.validation.ndra
返回
false

把它弄明白了。在我的控制器代码中,控制器被实例化,然后
this.registration.code
被设置为
P
,因此ndra下拉列表的模型已经有了一个值

请提供更多关于这个问题的信息好吗?您是否有一个默认选项,甚至是一个空选项?您是否也可以显示您列出的其他选项的标记?只添加了标记您是否将
vm.dropdown.types
vm.dropdowns.code
进行了比较?我猜你没有空值选项,所以不管你有什么值,Angular都认为这是有值的。是的,它们都为各自的下拉菜单返回字符串选项数组。这不起作用。我在我的原始帖子中添加了一些关于表单输入值的更多信息。我检查了
vm.validation.ndra
vm.validation.registrationType
——它们都返回true。取出
vm.validation.ndra
并在标记中将其替换为
true
,看看会发生什么。
 <md-input-container class="form-input-container padded-input md-block"
                            flex-gt-sm="">
          <label>Type of Registration*</label>
          <md-select id="registration-information-type"
                     name="registrationType"
                     ng-model="vm.registration.type"
                     ng-class="{'validation-error': newForm.registrationType.$error.required && newForm.$submitted}"
                     ng-required="vm.validation.registrationType">
            <md-option ng-repeat="type in vm.dropdowns.types"
                       value="{{type}}">
              {{type}}
            </md-option>
          </md-select>
        </md-input-container>
"$valid":true,"$invalid":false
"$valid":false,"$invalid":true