在我的 angular2 代码中,我想更新表单的值,但我的点击功能不起作用

Posted

技术标签:

【中文标题】在我的 angular2 代码中,我想更新表单的值,但我的点击功能不起作用【英文标题】:in my angular2 code i want to update value of form but my click function is not working 【发布时间】:2017-03-17 22:37:16 【问题描述】:

我的代码是:

<div *ngIf="payLoad" class="form-row">    
    <li (click)="select()">payLoad</li>   
</div> 

我的主要组成部分是:

select(payLoad)      
    this.form.value.external_id=payLoad;   
    

onSubmit()  
    if (this.form.valid) 
        for(let fm in this.form.value)  
            if(fm == 'external_id') 
                this.payLoad=this.form.value.external_id;
               
            if(fm == 'lastname') 
                this.payLoad1=this.form.value.lastname; 
            
            if(fm == 'email')  
                this.payLoad2=this.form.value.email;
             
            if(fm == 'gender')  
                this.payLoad3=this.form.value.gender;
             
            if(fm=='brave') 
                this.payLoad4=this.form.value.brave;
              
            if(fm=='role')  
                this.payLoad5=this.form.value.role; 
             
            if(fm=='status') 
                this.payLoad6=this.form.value.status;           
                   
                    
         
  

【问题讨论】:

欢迎来到 ***。我们试图在这里保持一些质量。请收拾烂摊子。您问题中的代码不可读。 请阅读:How do I format my code blocks? 【参考方案1】:

在 Angular2 中,FormGroups 只能通过.value 公开其值,您不能通过它更新FormGroup 的值。 您需要使用.setValue(value).patchValue(value)

如果您想使用一个对象设置整个组的值,请使用 .setValue(value)(它必须与您的 FormGroup 的架构匹配。 如果您只想使用与FormGroup 架构匹配的部分对象设置组值的子集,请使用.patchValue(value)

【讨论】:

以上是关于在我的 angular2 代码中,我想更新表单的值,但我的点击功能不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2:如何从表单的不同选项中获取选定的值?

当redux store中的值发生变化时,如何更新formik中的特定表单字段?

Javascript / Angular2如何根据表单字段值切换按钮

Angular2- RC6 自定义表单控件不起作用

关闭表单后如何保留 numericupdown 中的值

自动更新文本框