角度付き双方向バインディングの詳細な説明

角度付き双方向バインディングの詳細な説明

双方向バインディングの原理

双方向バインディングは、プロパティ バインディングとイベント バインディングを組み合わせます。

Angular の双方向バインディング構文は、角括弧と丸括弧 [()] の組み合わせです。

[] はプロパティのバインディングに使用され、() はイベントのバインディングに使用されます。

命名規則は[入力名] + 変更です。

  • プロパティ バインディング ( Input ) - 特定の要素属性を設定します。
  • イベント バインディング ( Output -output) − 要素変更イベントをリッスンします。

そのため、双方向バインディングの形式では ngModel と ngModelChange が存在し、双方向バインディングのプロパティをカスタマイズすることもできます。

ngモデル

フォーム要素への双方向バインディング

'@angular/core' から Component、OnInit をインポートします。
@成分({
  セレクタ: 'app-bind'、
  テンプレート: `
    <div>
      <div>名前: {{ name }}}</div>
      <input type="text" style="width: 300px;" nz-input name="名前" [(ngModel)]="名前" autocomplete="オフ">
    </div>
  `
})
BindComponentクラスをエクスポートし、OnInitを実装します。
  名前 = '';
  コンストラクタ() { }
  ngOnInit(): void { }
}

レンダリング

レンダリング

カスタム双方向バインディングプロパティ

コンポーネント-html

<div>
  <div>内部: {{値}}}</div>
  <input style="width: 300px;" nz-input (input)="onInput(input.value)" #input autocomplete="off">
</div>

コンポーネントts

'@angular/core' から Component、EventEmitter、Input、OnInit、Output } をインポートします。
@成分({
  セレクタ: 'app-inner'、
  テンプレート URL: './inner.component.html',
  スタイル URL: ['./inner.component.scss']
})
InnerComponentクラスをエクスポートし、OnInitを実装します。
  // 入力プロパティを設定します @Input() value!: string;
  // 出力イベントを設定します @Output() valueChange: EventEmitter<string> = new EventEmitter();
  コンストラクタ() { }
  ngOnInit(): void { }
  onInput(値: 文字列){
    // 出力イベントをトリガー - 出力データ this.valueChange.emit(value);
  }
}

外用

'@angular/core' から Component、OnInit をインポートします。
@成分({
  セレクタ: 'app-outer'、
  テンプレート: `
    <div>
      <div>名前: {{ name }}}</div>
      <app-inner [(値)]="名前"></app-inner>
    </div>
  `
})
OuterComponentクラスをエクスポートし、OnInitを実装します。
  名前 = '';
  コンストラクタ() { }
  ngOnInit(): void { }
}

レンダリング

レンダリング

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Angularでカスタムコンポーネントの双方向バインディングを実装する2つの方法の詳細な説明
  • Angular の双方向バインディングが効かず、ng-model が正常に表示されない問題を解決
  • 双方向データバインディング時にAngular2で[(ngModel)]が使用できない問題を解決する
  • AngularJS 双方向データバインディングの原則: $watch、$apply、$digest の適用
  • Angularカスタムコンポーネントを使用した双方向データバインディングの実装例
  • AngularJs における双方向バインディングの原理 (データバインディングメカニズム) についての簡単な説明

<<:  WEBAPP開発スキルのまとめ(モバイルWebサイト開発の注意点)

>>:  CSS3 フィルター (フィルタ) ウェブページのグレーまたは黒モードのサンプルコードを実現

推薦する

JavaScript 関数構文の説明

目次1. 通常の機能2. 矢印関数3. データパケットJSON 4. オブジェクト5. 約束6. 非...

ウェブページの内部アンカーポイントを実現するための純粋なCSSの上下オフセットコード例

最近、「フットボール ナビゲーション」Web サイトに取り組んでいるときに、上部の固定ナビゲーション...

ドラッグ可能で編集可能なガントチャートの詳細な説明(HighchartsはVueとReactで使用できます)

序文Excel は強力で、広く使用されています。 Web アプリケーションの登場と改善に伴い、ユーザ...

マウスの尾行効果を実現する JavaScript

マウス効果では、setTimeout を使用して固定時間にノードを生成し、ノードを削除し、生成された...

MySQLデータベースの管理者パスワードを忘れた場合の解決策

1. コマンド mysqld --skip-grant-tables を入力します (前提条件: m...

Linux システムをバックアップする docker コマンドの詳細な説明

tar バックアップ システム sudo tar cvpzf backup.tgz --exclud...

MySQLデータベースを定期的に自動バックアップする方法

データは貴重なものであることは誰もが知っています。データをバックアップしなければ、データをそのまま放...

VMware での Ubuntu と Windows 間のファイル共有

この記事では、VMware 環境下で Ubuntu と Windows 間でファイルを共有する方法を...

Linux の検索ツールの代替となるフレンドリーなツール

find コマンドは、指定されたディレクトリ内のファイルを検索するために使用されます。引数の前の文字...

ウェブ計算機を実装するためのjs

HTML、CSS、JS を使用してシンプルな Web 計算機を作成する方法は?コンピュータには次の...

docker run後、ステータスは常にExitedになります

追加するdocker run -it -name test -d nginx:latest /bin...

プロジェクトにおけるVue3のロジック抽出とフィールド表示についての簡単な説明

目次論理階層化異なる地域から事業を分離するこれを実行する利点このようなシナリオにどう対処するか最適化...

Zabbix でフィルターを使用して監視を実装する方法

最近、監視機器の作業をしていたとき、ポートがダウンしているというアラームが常に出ていました。データを...

Centos7 に yum 経由で MySQL をインストールする方法

1. MySQLがインストールされているかどうかを確認する yum インストール済みリスト | gr...

Docker 接続 MongoDB 実装プロセスとコード例

コンテナが起動した後まず管理者にログインして新しいユーザーを作成してください $ docker ex...