如何编写一个完整的Angular4 FormText 组件
程序员文章站
2022-06-25 13:46:09
本文主要介绍了如何编写一个完整的angular4 formtext 组件,分享给大家,也给自己留个笔记
组件定义
import { component, o...
本文主要介绍了如何编写一个完整的angular4 formtext 组件,分享给大家,也给自己留个笔记
组件定义
import { component, output, input, forwardref, eventemitter} from '@angular/core'; import {controlvalueaccessor, ng_value_accessor} from '@angular/forms'; @component({ selector: 'form-text', template: ` <div > <label>{{label}}:</label> <input type="text" [(ngmodel)]="value" placeholder="{{placeholder}}" > </div> `, providers: [ { provide:ng_value_accessor, useexisting:forwardref(()=>formtextcomponent), multi:true } ] }) export class formtextcomponent implements controlvalueaccessor { @input() label:string = ''; @input() placeholder: string=''; @output() onchange: eventemitter<any> = new eventemitter<any>(); public innervalue: any; public changefn: function = () => {}; get value(): any { return this.innervalue; }; set value(v: any) { if (v !== this.innervalue) { this.innervalue = v; this.changefn(v); } } writevalue(value: any) { if (value !== this.innervalue) { this.innervalue = value; } } registeronchange(fn: any) { this.changefn = fn; } registerontouched(fn: any) { // } }
组件使用
<form-text [(ngmodel)]="mobile" [placeholder]="placeholder" [label]="label"></form-text> <p>{{mobile}}</p>
需要注意的点:
1.需要配置组件的providers
2.需要实现controlvalueaccessor接口
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。