首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular-6验证

Angular-6验证
EN

Stack Overflow用户
提问于 2019-03-22 14:31:08
回答 3查看 152关注 0票数 0

我正在尝试在angular 6中做一个表单验证

Html代码

代码语言:javascript
复制
<form [formGroup]="providerForm" (ngSubmit)="onClickSubmit()">
            <div class="form-group">
                <label for="name">Name</label>
                <input type="text" class="form-control" id="name" required [(ngModel)]="provider.name"
                    name="name" placeholder="Name" formControlName="name">
                <div *ngIf="submitted && f.name.errors" class="invalid-feedback">
                            <div *ngIf="f.name.errors.required"> Name is required</div>
                        </div>
            </div>
</form>

Component.ts

代码语言:javascript
复制
    export class ProviderserviceComponent implements OnInit {
        constructor(private modalService: NgbModal, public cdRef: ChangeDetectorRef, private formBuilder: FormBuilder) { }
         submitted = false;
        provider: Provider = new Provider();
        providerForm: FormGroup;

        ngOnInit() {
            this.providerForm = this.formBuilder.group({
                name: ['', Validators.required]
            });

        }
        get f() { return this.providerForm.controls; }
        onClickSubmit(data) {
            this.submitted = true;

        }

在app.modeule.ts,component.ts文件中,我添加了以下模块FormBuilder,FormGroup,验证器,当我调试html文件时,它显示错误。

EN

回答 3

Stack Overflow用户

发布于 2019-03-22 14:50:57

你不应该使用<input type="text" class="form-control" id="name" required [(ngModel)]="provider.name",ngmodel不是反应式表单所必需的。匹配在formControlName上完成。向表单传递数据是通过setValue / patchValue完成的。请查看文档中的最小示例。

票数 0
EN

Stack Overflow用户

发布于 2019-07-12 17:14:29

HTML文件

代码语言:javascript
复制
<form [formGroup]="providerForm" (ngSubmit)="onClickSubmit()">
   <div class="form-group">
    <label for="fname">Name</label>
     <input type="text" class="form-control" id="fname" required (ngModel)]="provider.fname" placeholder="Name" formControlName="fname" #fname>

     <div *ngIf="submitted && f.fname.errors" class="invalid-feedback">
      <div *ngIf="f.fname.errors.required"> Name is required</div>
      </div>
     </div>
</form>

Component.ts

代码语言:javascript
复制
export class ProviderserviceComponent implements OnInit {
        constructor(private formBuilder: FormBuilder) { }
         submitted = false;
        provider: Provider = new Provider();
        providerForm: FormGroup;

        ngOnInit() {
            this.providerForm = this.formBuilder.group({
                fname: ['', Validators.required]
            });

        }
        get f() { return this.providerForm.controls; }
        onClickSubmit(data) {
            this.submitted = true;

        }
票数 0
EN

Stack Overflow用户

发布于 2019-07-12 17:25:13

请不要使用FormBuilderngModel,因为它们使用的是相同的工作

例如,尝试删除

代码语言:javascript
复制
this.providerForm = this.formBuilder.group({
       name: ['', Validators.required]
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55294056

复制
相关文章

相似问题

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