今回は、完全な Angular4 FormText コンポーネントを実装するために必要な手順と、完全な Angular4 FormText コンポーネントを実装するために必要な notes について説明します。以下は実際的なケースです。見てみましょう。
この記事では主に、完全な 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>
注意すべき点:
コンポーネントのプロバイダーを設定する必要があります
ControlValueAccessorインターフェースを実装する必要があります
この記事を読む方法はもうマスターされたと思います。さらに興味をそそられる場合は、PHP 中国語 Web サイトの他の関連記事にも注目してください。
推奨読書:
js がフォントサイズを照合して計算する方法操作モーダル単一ロードデータ以上が完全な Angular4 FormText コンポーネントを実装するにはどのような手順が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。