Angular material 当必填字段显示为ng无效时,角度材质窗体显示为ng有效

Angular material 当必填字段显示为ng无效时,角度材质窗体显示为ng有效,angular-material,angular4-forms,Angular Material,Angular4 Forms,我正在使用Angular4编写一个表单,其中包含一些非常基本的验证,我只想确保在用户点击“提交”之前填写一些字段。使用“必需”属性和角度材质可以确保我的字段将显示一个星号,如果用户触摸这些字段而不输入任何值,这些字段将变为红色 我遇到的问题是表单是可提交的,即使不是所有字段都已填写。某些字段仍将具有ng invalid属性,但表单标记显示ng valid属性。其他字段按预期工作,表单在正确填写之前无效 这是我表格的标签: 这里有一个表单字段的例子,它有正确的处理方式;如果我将这样的属性留空,表

我正在使用Angular4编写一个表单,其中包含一些非常基本的验证,我只想确保在用户点击“提交”之前填写一些字段。使用“必需”属性和角度材质可以确保我的字段将显示一个星号,如果用户触摸这些字段而不输入任何值,这些字段将变为红色

我遇到的问题是表单是可提交的,即使不是所有字段都已填写。某些字段仍将具有ng invalid属性,但表单标记显示ng valid属性。其他字段按预期工作,表单在正确填写之前无效

这是我表格的标签:

这里有一个表单字段的例子,它有正确的处理方式;如果我将这样的属性留空,表单将保留ng invalid属性:

<md-select placeholder="Bill Client for any Expenses?" [(ngModel)]="campaign.billBackRequired" name="bill" class="col-sm-4" required>
                    <md-option value="Yes">Yes</md-option>
                    <md-option value="No">No</md-option>
                </md-select> 

对
不
下面是一个表单字段的示例,它不影响表单是否有效。据我所知,所有表单字段的统一特征(不影响父表单是否有效)都是文本输入,带有项目后端列表中的自动填充选项:


                <md-form-field>
                    <input autocomplete="new-password" type="text" placeholder="Account Manager" aria-label="Account Manager"
                         mdInput [formControl]="accountManagersControl" [mdAutocomplete]="am"
                         [(ngModel)]="campaign.accountManager" name="accountManager" required>
                    <md-autocomplete #am="mdAutocomplete" [displayWith]="displayName">
                        <md-option *ngFor="let accountManager of filteredAccountManagers | async" [value]="accountManager">
                            {{ accountManager['fullname'] }}
                        </md-option>
                    </md-autocomplete>
                </md-form-field>


{{accountManager['fullname']}
编辑:
在对表单做了一些工作并从头构建了一个新字段之后,[formControl]标记似乎是导致任性字段无法与其他字段一起验证的原因。我目前正在研究如何对各种formControls进行分组。

在对各种formControls进行分组时使用FormGroup。老实说,我认为FormGroup有点时髦。如果我可以避免的话,我不喜欢它,但是将数据保存在一起很好@ChadK我现在正在调查FormGroups,肯定会发现一些令人恐惧的地方。为我祈祷吧。