ホームページ > ウェブフロントエンド > jsチュートリアル > 完全な Angular4 FormText コンポーネントを実装するにはどのような手順が必要ですか?

完全な Angular4 FormText コンポーネントを実装するにはどのような手順が必要ですか?

php中世界最好的语言
リリース: 2018-04-14 14:42:54
オリジナル
1476 人が閲覧しました

今回は、完全な 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート