首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查任何模型属性是否为空?

如何检查任何模型属性是否为空?
EN

Stack Overflow用户
提问于 2019-07-10 06:30:47
回答 2查看 2.5K关注 0票数 0

就像标题上说的。我正在构建我的第一个web应用程序,我想做基本的表单验证。它工作正常,但在向服务器发送post请求的方法中存在一些问题。它向服务器发送请求,即使我没有填充表单的所有字段,模型的一些属性也是空的。

我试着逐个检查每一处房产,但是有无数的“如果”条件,我不相信这是我唯一的解决办法。

是否有检查给定模型属性是否为空的可用方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-10 07:11:46

方法1:表单验证

Component.html

代码语言:javascript
复制
<form #testForm (ngSubmit)="save()">
 <input  required  [(ngModel)]="model.value1">
 <input  required  [(ngModel)]="model.value2">
 <input type="submit" type="button">
</form>

Component.Ts

代码语言:javascript
复制
 @ViewChild("testForm ") testForm : NgForm | undefined;
 model:any={value1:"",value2:""};

 save()
{
  if( testForm.valid)
   {
      //save  to data base or play
   }    
}
代码语言:javascript
复制
Component.ts
//suppose you have model object like below
model:any={value1:"",value2:""};
save()
{
  let valid:boolean=true;
  for(let key of Object.keys(model)
   {
     if(!model[key])
      {
          valid=false;
      }
   }
 if(Valid)
  {
   // save to database or play
  }
}
票数 0
EN

Stack Overflow用户

发布于 2019-07-10 07:18:05

尝试使用反应性表单。将控制器分组到窗体组中,并向每个控制器添加验证器,这样用户就不能在未完成所有必需字段的情况下处理表单数据。然后,如果表单数据无效(或无效),您可以签入OnSubmit函数,并停止数据的处理。

查看以下链接:

反应形式角

形式验证角

您可以看到下面的示例:

代码语言:javascript
复制
export class AppComponent implements OnInit {

    registerForm: FormGroup;
    submitted = false;

    constructor(private formBuilder: FormBuilder) { }

    ngOnInit() {
        this.registerForm = this.formBuilder.group({
            firstName: ['', Validators.required],
            lastName: ['', Validators.required],
        });
    }

    onSubmit() {
        this.submitted = true;
        // stop here if form is invalid
        if (this.registerForm.invalid) {
            return;
        }

        //process data HERE after checking if the form is invalid
    }

}

HTML代码

代码语言:javascript
复制
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()">
    <div class="form-group">
        <label>First Name</label>
        <input type="text" formControlName="firstName" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.firstName.errors }" />
        <div *ngIf="submitted && f.firstName.errors" class="invalid-feedback">
            <div *ngIf="f.firstName.errors.required">First Name is required</div>
             </div>
        </div>
        <div class="form-group">
            <label>Last Name</label>
            <input type="text" formControlName="lastName" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.lastName.errors }" />
            <div *ngIf="submitted && f.lastName.errors" class="invalid-feedback">
                <div *ngIf="f.lastName.errors.required">Last Name is required</div>
                </div>
            </div>
    </div>
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56964588

复制
相关文章

相似问题

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