對於自動化測試,我想填充角4表單。但是在提交之後,Angular沒有意識到這些變化。使用jQuery填充Angular4表單
我有formgroup和formcontrol使用表單生成器的窗體。
在應用程序之外,我需要做一些自動化測試。因此,當我嘗試填寫表格$('#firstName').val('John');
並提交表單時:Angular向我提供表單中的先前值,並且未檢測到它的更改。
我試過多種解決方案,但沒有任何工程樣
- 運行變化檢測表單提交
this.form.updateValueAndValidity()
- 與
ngZone
- 與變化事件玩耍
我有不知道如何強制Angular檢測到我在表單上的更改。
更新HTML
<input type="text" class="input-event" name="firstName" id="firstName" placeholder="First Name" [formControlName]="formFieldNames.firstName" />
更新2
下面是一個例子:https://run.plnkr.co/sqseg6kObDICjdEa/
如果您填寫了一些數據表格,並提交,您將獲得在控制檯中正確的數據。
現在,如果你把在控制檯document.getElementById('fullname').value = 'Jean';
並重新提交,您將看到的角度沒有更新的數據,我想知道我怎樣才能使它如此。
你能不能發佈你的html頁面? –
我更新了這篇文章。正如你所看到的,正常的HTML –
你可以在你的組件ts類中得到這個值。 formFieldNames.controls ['firstName']'不確定什麼情況會讓你打開jquery。還有'ElementRef'可以用來控制元素並獲取數據 –