更改事件不在角度4的跨度上工作

时间:2017-08-01 10:28:26

标签: angular onchange

Angular 4更改事件正常工作,输入类型文本如下所示

<input type="text" (change)="updateData($event)"/>

但是当我们编写如下代码时,它确实无法工作。

<span id="fname" (change)="updateData($event)"></span>

任何人都可以给我这种行为的垃圾洞察力,如果可能,那么最好的方法来达到同样的目的。

1 个答案:

答案 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>