如何編寫一個完整的Angular4 FormText 組件
更新時間:2017年11月18日 16:33:58 作者:mntx
本篇文章主要介紹了如何編寫一個完整的Angular4 FormText 組件,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
本文主要介紹了如何編寫一個完整的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.需要實現(xiàn)ControlValueAccessor接口
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
詳解AngularJS1.6版本中ui-router路由中/#!/的解決方法
本篇文章主要介紹了詳解AngularJS1.6版本中ui-router路由中/#!/的解決方法,非常具有實用價值,需要的朋友可以參考下2017-05-05
詳解Angular 4.x NgTemplateOutlet
這篇文章主要介紹了詳解Angular 4.x NgTemplateOutlet,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05
AngularJS1.X學習筆記2-數(shù)據(jù)綁定詳解
本篇文章主要介紹了AngularJS1.X學習筆記2-數(shù)據(jù)綁定詳解,具有一定的參考價值,有興趣的可以了解一下。2017-04-04
AngularJS通過$location獲取及改變當前頁面的URL
本篇將介紹AngularJS中的$location服務的基本用法,$location服務的主要作用是用于獲取當前url以及改變當前的url,并且存入歷史記錄。本文通過示例代碼介紹的很詳細,有需要的朋友們可以參考借鑒,下面來一起看看吧。2016-09-09
Angular2學習筆記之數(shù)據(jù)綁定的示例代碼
本篇文章主要介紹了Angular2學習筆記之數(shù)據(jù)綁定的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
AngularJS基于ui-route實現(xiàn)深層路由的方法【路由嵌套】
這篇文章主要介紹了AngularJS基于ui-route實現(xiàn)深層路由的方法,涉及AngularJS路由嵌套操作相關實現(xiàn)步驟與技巧,需要的朋友可以參考下2016-12-12

