使用ngModel创建组件

Posted llcmite

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ngModel创建组件相关的知识,希望对你有一定的参考价值。

@angular/forms里有个接口用来实现支持[(ngModel)],具体可查ControlValueAccessor,这边还未深入理解只是为了开发组件而初步了解

interface ControlValueAccessor 
  writeValue(obj: any): void
  registerOnChange(fn: any): void
  registerOnTouched(fn: any): void
  ...

我们要做的事就是实现这个接口

import NG_VALUE_ACCESSOR,ControlValueAccessor from "@angular/forms"
@Component(
  selector: ‘app-search-select‘,
  templateUrl: ‘./search-select.component.html,
  styleUrls: [‘./search-select.component.less‘],
  providers: [
    provide: NG_VALUE_ACCESSOR,
    useExisting: forwardRef(() => SearchSelectComponent),
    multi: true
  ]
)
  export class SearchSelectComponent implements ControlValueAccessor
      writeValue(obj: any): void
      registerOnChange(fn: any): void
      registerOnTouched(fn: any): void
  
 

 

  

以上是关于使用ngModel创建组件的主要内容,如果未能解决你的问题,请参考以下文章

在 Angular 2 中加载第一页时设置 [(ngModel)] 的值

<select> 组件与 ngModel 的奇怪行为

Angular7 - [ngModel] 不会在组件中更新,当两次输入相同的值时

子组件中的 Angular 2 ngModel 更新父组件属性

在 textarea 上使用 [(ngModel)] 绑定时如何避免 ExpressionChangedAfterItHasBeenCheckedError

离子切换检查不适用于 ngModel ionic 3