這次帶給大家實作完整的Angular4 FormText元件需要哪些步奏,實作完整Angular4 FormText元件的注意事項有哪些,以下就是實戰案例,一起來看一下。
本文主要介紹如何寫一個完整的Angular4 FormText 元件,分享給大家,也給自己留個筆記
元件定義
import { Component, Output, Input, forwardRef, EventEmitter} from '@angular/core'; import {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms'; @Component({ selector: 'form-text', template: ` <p > <label>{{label}}:</label> <input type="text" [(ngModel)]="value" placeholder="{{placeholder}}" > </p> `, 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>
需要注意的點:
需要配置元件的providers
需要實作ControlValueAccessor介面
了本文案例時你已掌握了方法,更多精彩請關注php中文網其它相關文章!
推薦讀取:
以上是實作完整的Angular4 FormText元件需要哪些步奏的詳細內容。更多資訊請關注PHP中文網其他相關文章!