首页 文章

角度6反应形式的双向约束

提问于
浏览
8

我试图用嵌套的组件创建一个复杂的反应形式,该组件填充了数据对象 .

我试图实现的行为非常类似于模板驱动形式的双向数据绑定:当用户编辑表单的输入时,数据对象正在改变 automatically .

但是与模板驱动的形式相反,我不能使用 [(ngModel)] ,因为它在角度V6的反应形式中被弃用 .

我知道 fromGroup.patchValue() 只会进行单向绑定,然后不得不手动订阅更改事件并手动更新数据对象 - 这将导致大量疲劳代码 .

该方案有没有解决方法?

1 回答

  • 4

    好吧,如果我理解正确的话,我遇到了类似的问题(我真的不知道这是不是最好的做法)但是它对我有用,所以在HTML中:

    <mat-form-field class="mat-container">
        <input matInput  [formControl]="generalDiscount" type="number" 
            formControlName="generalDiscount" 
            (input)="course.amounts.generalDiscount = $event.target.value" <-the workaround 
            placeholder="Discount" required="required">
    </mat-form-field>
    

    此输入使其成为双向绑定,在.ts类中,您需要将相同的字段放在表单组中

    this.amountGroup = this._formBuilder.group({
    
        [this.course.amounts.fitToNomberOfPeople,Validators.required],
        generalDiscount:[this.course.amounts.generalDiscount,Validators.required],
    
    });
    

    希望有所帮助

相关问题