微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何编写一个完整的Angular4 FormText 组件

本文主要介绍了如何编写一个完整的Angular4 FormText 组件,分享给大家,也给自己留个笔记

组件定义

rush:js;"> import { Component,Output,Input,forwardRef,EventEmitter} from '@angular/core'; import {ControlValueAccessor,NG_VALUE_ACCESSOR} from '@angular/forms';

@Component({
selector: 'form-text',template: `

`,providers: [ { provide:NG_VALUE_ACCESSOR,useExisting:forwardRef(()=>FormTextComponent),multi:true } ] }) export class FormTextComponent implements ControlValueAccessor {

@input() label:string = '';
@input() placeholder: string='';

@Output() onChange: EventEmitter = new EventEmitter();

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) {
//
}

}

组件使用

rush:xhtml;">

{{mobile}}

需要注意的点:

1.需要配置组件的providers 2.需要实现ControlValueAccessor接口

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。

原文地址:https://www.jb51.cc/js/35155.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐