首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗体数组中窗体控件不工作的验证

窗体数组中窗体控件不工作的验证
EN

Stack Overflow用户
提问于 2021-04-13 08:43:57
回答 1查看 48关注 0票数 0

我有表单数组,其中有表单控件。

这是HTML代码

代码语言:javascript
复制
<div class="container">
                            <ng-container formArrayName="positions">
                                <div class="row" style="margin-top:20px;"
                                    *ngFor="let _ of positions.controls; index as i">
                                    <ng-container [formGroupName]="i">
                                        <div class="col-sm flex-3">
                                            <input class="form-control" trim-directive formControlName="name"
                                                maxlength="64" />
                                            <div class="has-danger"
                                                *ngIf="form.get('name').touched || form.get('name').dirty">
                                                <div *ngIf="form.get('name').errors?.required"
                                                    class="form-control-feedback">
                                                    {{'FieldIsRequired' | localize}}
                                                </div>
                                            </div>
                                        </div>

                                    </ng-container>
                                </div>
                            </ng-container>
                        </div>

下面是我如何在TS文件中创建它

代码语言:javascript
复制
createForm(): any {
    this.form = this._formBuilder.group({
        positions: this._formBuilder.array(
            [
                this._formBuilder.group({
                    recruitmentAgencyClientId: [this.recruitmentAgencyClientId],
                    loanAmount: ['', [Validators.required, Validators.min(2000)]],
                    name: ['', [Validators.required]]
                })
            ], Validators.required)
    });
    this.getPositionsCount();
    this.getTotalLoanAmount();
}

但是,当我尝试运行project<时,我会得到这个错误

TypeError:无法读取属性“触摸”的null

在这一行*ngIf="form.get('name').touched || form.get('name').dirty"

我怎么能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-13 08:49:35

form是外型群。您必须这样做才能访问内部表单组。

代码语言:javascript
复制
<div class="container">
    <ng-container formArrayName="positions">
        <div class="row" style="margin-top:20px;"
            *ngFor="let innerForm of positions.controls; index as i">
            <ng-container [formGroupName]="i">
                <div class="col-sm flex-3">
                    <input class="form-control" trim-directive formControlName="name"
                        maxlength="64" />
                    <div class="has-danger"
                        *ngIf="innerForm.get('name').touched || innerForm.get('name').dirty">
                        <div *ngIf="innerForm.get('name').errors?.required"
                            class="form-control-feedback">
                            {{'FieldIsRequired' | localize}}
                        </div>
                    </div>
                </div>

            </ng-container>
        </div>
    </ng-container>
</div>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67071510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档