为什么更改事件是针对controlValueAccessor的模糊触发的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么更改事件是针对controlValueAccessor的模糊触发的相关的知识,希望对你有一定的参考价值。

如果我在我的模板中放置一个实现ControlValueAccessor接口的自定义输入并绑定到它的change事件,如下所示:

  <input-app [value]="'initialVal'" (change)="onChange($event)"></input-app>

我的自定义输入没有触发任何模糊事件(要清楚你必须专注于输入,更改它,然后模糊,事件将出现在控制台中)。

<input
    type="text"
    [value]="value"/>

将调用onChange()方法,我不明白为什么会这样。

Here is a plnkr

答案

应触发(change)

当输入值的更改导致将新值提交给模型时。

但在这种情况下,我不认为你使用的是模型。

你想要的是每次输入你的输入时做一些事情,所以我会改用(keyup)

<input-app [value]="'hey'"  placeholder="your name" (keyup)="onChange($event)"></input-app>
另一答案

我有点惭愧,但事件只是起泡。

same with keyup event

@Component({
  selector: 'my-app',
  template: `
    <div (keyup)="onKeyUp()">
      <input/>
    </div>
  `,
})
export class App {      
  onKeyUp() {
    console.log('it bubbles')
  }
}

以上是关于为什么更改事件是针对controlValueAccessor的模糊触发的的主要内容,如果未能解决你的问题,请参考以下文章

angularjs怎样更改子作用域的值

Swift Combine - 如何获得一个发布者,为 UITextField 的文本属性的每个字符更改提供事件

WPF的DataGrid数据保存与更改

什么是 Textarea 中的 Angular4“更改”事件触发指令

为啥 Mio 的民意调查会针对用户生成的事件触发两次?

NSFetchedResultsController 委托方法未针对这些更改触发