【发布时间】:2019-02-07 22:57:14
【问题描述】:
我正在尝试使用 Angular 6 Forms 共同浏览。在共同浏览开源库时,JS 更新了远程方相应元素的 DOM 值。我已经更新了 index.html 中的 JavaScript 相关代码(两行第一行,另一行在body) 我使用 ControlValueAccessor 观察到相应元素的表单类型 DOM 值正在更新,但 FormControl 值在视图中没有得到更新。 我的问题是如何将外部库对 DOM 元素所做的更改反映到 Angular 6 表单控件的元素值中。
可以从以下链接获取代码: https://github.com/srigaurav1986/Angular-Forms.git
如何复制:
1.从以上链接下载代码。
2.使用“npm install”安装依赖
3.运行“ng serve -o”
4.在浏览器中打开“http://localhost:4200/controlvalueaccessor”
5.点击“Start TogetherJs”
6.将弹出的链接复制到另一个浏览器窗口中。
7.更新“名称”字段
我们可以看到远程端的 DOM 字段值也在更新,但是在按下“提交”按钮后,我们可以看到 FormControl 的值在远程端保持不变,但在另一端发生了变化。
我尝试使用 application.tick、markforcheck() 和 detectchanges() api 手动检测更改,但没有运气。有没有办法,我们可以监听 DOM 元素更改的某些事件并订阅它并更新这种情况下的 Formcontrol 参数值。
【问题讨论】:
标签: dom angular6 angular-forms controlvalueaccessor