隔离期间的爱情-angular下自定义组件适用form的方法

实现细节https://segmentfault.com/a/11... 写的很清楚了,很是详细可是我不太能看得懂,随便写写,说不定写着写着就懂了
基本的原理就是react

  1. 实现一个组件,这个组件接受angular的 ngmodel 的模版驱动表单语法或者reactive form 响应式表单的语法。
  2. 接受angular form的语法的原理就是自定义的组件要实现 AbstractControl 接口。
  3. 首先明白 ngmodel 究竟是作了什么事,太详细的我讲不出来事太多了,我理解就是两个,ngmodel 是一个语法糖。 [(ngModel)]="value"的意思等于
<component-name [value]="value" (ngModelChange)="value = $event"></component-name>
  1. 而后在你的component 中监听 value ,和你改变了数据 value 以后触发 ngModelChange.emit(this.value) 事件通知给父组件之类的。可是他这里提供的 api 实际上是 writeValue(value){}函数,接受的参数是外面传入的value,每次value修改时会触发writeValue函数。 而后`
    registerOnChange(fn: any) {
    this.propagateChange = fn;
    }

中的 fn 参数其实就是 ngModelChange.emit(this.value)。 segmentfault

写到这里我就更疑惑了,那为何angular要设计这么复杂的API呢,是为了解决什么场景吗?没法理解呀,好难哦,又是一篇中文垃圾api

相关文章
相关标签/搜索