2016-08-25 98 views
0

我有這樣一個FormControl:角2 ngFormControl與屬性指令在同一輸入

<form [ngFormModel]='controlGroup' novalidate> 
    Amount <input type="text" dmAmount [ngFormControl]="formControls.value"> 
</form> 

this.controlGroup = this.formBuilder.group({ 
    value: [this.newItem.value, Validators.compose([Validators.required, Validators.pattern('^[0-9]+[wm]?$')])], 
}); 

dmAmount屬性指令變異值,它確實改變了裏面輸入:

//some code 
this.elRef.nativeElement.value = +num * 12; 

但是提交值仍然是原來的,就像屬性指令沒有改變它一樣。如何確保表單模型中的值發生更改,以便我可以提交新值?

回答

0

在你的代碼

private myVal: number; 

創建一個屬性,並以您的視圖分配ngModel

<form [ngFormModel]='controlGroup' novalidate> 
    Amount <input type="text" dmAmount [(ngModel)]="myVal" [ngFormControl]="formControls.value"> 
</form> 

你的方法應該更新變量設爲myVal而不是直接的本土元素。它看起來像你在NativeScript這樣做,所以你需要通過NgZone運行更新這樣

import { NgZone } from "@angular/core"; 

constructor(private _zone: NgZone) {} 

// Your code 
this._zone.run(() => this.myVal = +num * 12); 

這應該更新您的視圖。然後使用myVal變量進行提交(或者在你的情況下,用this.newItem.value替換myVal)