在我的Angular组件ts文件中,我有一个模型,其中一个属性的值是HTML格式的文本。通过在组件的.html文件中设置div的inner html属性,可以在UI中显示文本。通过设置可编辑属性,使div可以进行编辑。
代码片段:
这里的 formatJson 返回一个以 HTML 格式化的 JSON 文本。
问题在于:
即使我们使用 ngModel 进行双向数据绑定,对文本所做的更改也不会反映在相应的模型中。
我在这里做错了什么吗?您能给出建议吗?
代码片段:
<div id="requestBody" contenteditable="true"
*ngIf="selectedReqTab==='reqBody'" [innerHTML]="formatJson(requestBody)"></div>
这里的 formatJson 返回一个以 HTML 格式化的 JSON 文本。
问题在于:
即使我们使用 ngModel 进行双向数据绑定,对文本所做的更改也不会反映在相应的模型中。
<div id="requestBody" contenteditable="true"
*ngIf="selectedReqTab==='reqBody'" [(ngModel)]=”requestBody”
[innerHTML]="formatJson(requestBody)"></div>
我在这里做错了什么吗?您能给出建议吗?
contenteditable
元素不会触发change
事件,而ngModel
双向绑定依赖于此。尝试绑定到input
或keyup
事件。如果这样做,我建议从中创建一个Observable,以便您可以使用像debounceTime
和distinctUntilChanged
这样的操作符来避免获得太多事件。 - Will Alexander