Angular6 被动表单-提交时,检查表单中是否至少有一个更改,然后才调用API

Angular6 被动表单-提交时,检查表单中是否至少有一个更改,然后才调用API,angular6,angular-reactive-forms,angular7,reactive-forms,Angular6,Angular Reactive Forms,Angular7,Reactive Forms,我想要实现的是这样的目标: 当用户单击Submit按钮时,我需要在后台比较表单的状态是否已更改,我所说的状态是指表单中是否至少有一个更改,并且仅,然后调用API/服务器保存信息 如果没有任何更改,只需向用户显示一条警告消息——“嘿,你需要更新一些东西!”(console.log()就足够了) *当用户在字段1中更改某些内容时,我还需要处理这种情况,例如,从胡萝卜更改为美味的胡萝卜,然后再次更改为胡萝卜(不要调用API) 现在我有这样的事情- 可以使用原始的/脏的/触摸过的/未触摸过的属性吗?可以

我想要实现的是这样的目标:

  • 当用户单击Submit按钮时,我需要在后台比较表单的状态是否已更改,我所说的状态是指表单中是否至少有一个更改,并且,然后调用API/服务器保存信息
  • 如果没有任何更改,只需向用户显示一条警告消息——“嘿,你需要更新一些东西!”(console.log()就足够了)
  • *当用户在字段1中更改某些内容时,我还需要处理这种情况,例如,从胡萝卜更改为美味的胡萝卜,然后再次更改为胡萝卜(不要调用API)
  • 现在我有这样的事情-


    可以使用原始的/脏的/触摸过的/未触摸过的属性吗?

    可以使用脏的检查,RxFormBuilder提供了一种方法
    isDirty()
    来检查formControl值中是否有任何更新。您只需要从@rxweb/reactive form validators包导入FormGroupExtension和RxFormBuilder,您必须通过RxFormBuilder创建一个formgroup。当您想检查提交时单击是否有更新,您可以尝试在“提交”按钮单击时使用此方法

     onSubmit() {
        let isDirty = (<FormGroupExtension>this.myForm1).isDirty();
        if(isDirty)
        {
           this.http.post(this.api, this.myForm1);
        }
        else{
          console.log("Hey you need to update something!");
        }
      }
    
    onSubmit(){
    设isDirty=(this.myForm1.isDirty();
    如果(isDirty)
    {
    this.http.post(this.api,this.myForm1);
    }
    否则{
    log(“嘿,你需要更新一些东西!”);
    }
    }
    

    这里是forked

    可以使用脏检查,RxFormBuilder提供了一个方法
    isDirty()
    来检查formControl值中是否有任何更新。您只需从@rxweb/reactive form validators包导入FormGroupExtension和RxFormBuilder,您必须通过RxFormBuilder创建一个formgroup。当您想检查提交时单击是否有更新,您可以尝试在“提交”按钮单击时使用此方法

     onSubmit() {
        let isDirty = (<FormGroupExtension>this.myForm1).isDirty();
        if(isDirty)
        {
           this.http.post(this.api, this.myForm1);
        }
        else{
          console.log("Hey you need to update something!");
        }
      }
    
    onSubmit(){
    设isDirty=(this.myForm1.isDirty();
    如果(isDirty)
    {
    this.http.post(this.api,this.myForm1);
    }
    否则{
    log(“嘿,你需要更新一些东西!”);
    }
    }
    

    这里是forked

    有趣的,我什么都不知道,谢谢分享!有趣的是我什么都不知道,谢谢分享!