Angular 4更改事件正常工作,输入类型文本如下所示
<input type="text" (change)="updateData($event)"/>
但是当我们编写如下代码时,它确实无法工作。
<span id="fname" (change)="updateData($event)"></span>
任何人都可以给我这种行为的垃圾洞察力,如果可能,那么最好的方法来达到同样的目的。
答案 0 :(得分:4)
对于contenteditable
,您需要使用input
事件。 Here is文档说的是什么:
然而,当一个值的值同步触发DOM输入事件 ,,或元素被更改...此外,它会在contenteditable编辑器上触发 其内容已更改。在这种情况下,事件目标是 编辑主机元素......
input
会在每次更改时触发,change
会在focusout
上触发,因此您需要将这些内容合并。
class Component {
tmp = ''l
updateTmpData(e) {
this.tmp = e.target.textContent;
}
updateData() {
// use this.tmp
}
}
...
<span id="fname" (input)="updateTmpData(e)" (focusout)="updateData()"></span>