【发布时间】:2019-10-12 16:56:47
【问题描述】:
在我的角度组件 ts 文件中,我有一个模型,其值为 html 格式的文本。 文本使用组件的 .html 文件中 div 的内部 html 属性显示在 UI 中。 通过设置可编辑属性使 div 可编辑。
代码sn-p:
<div id="requestBody" contenteditable="true"
*ngIf="selectedReqTab==='reqBody'" [innerHTML]="formatJson(requestBody)"></div>
这里 formatJson 返回的是 html 格式的 JSON 文本。
问题:
即使我们使用 ngModel 进行 2 路数据绑定,文本中所做的更改也不会反映在相应的模型中。
<div id="requestBody" contenteditable="true"
*ngIf="selectedReqTab==='reqBody'" [(ngModel)]=”requestBody”
[innerHTML]="formatJson(requestBody)"></div>
我在这里做错了什么?你能建议一下吗?
【问题讨论】:
-
据我所知,
contenteditable元素不会触发change事件,这是ngModel双向绑定所依赖的。尝试绑定到input或keyup事件。如果你这样做,我建议从它们创建一个 Observable,这样你就可以使用像debounceTime和distinctUntilChanged这样的运算符来避免发生太多事件。
标签: html json angular typescript data-binding