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

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

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

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

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 フィルター (フィルタ) ウェブページのグレーまたは黒モードのサンプルコードを実現

推薦する

Docker 経由で CentOS コンテナを作成する手順

目次序文コンテナ間の通信を容易にするためのブリッジネットワークを作成するCentOS7イメージを使用...

sqlとmysqlの違いは何ですか?

SQL とは何ですか? SQL はデータベースを操作するために使用される言語です。 SQL はすべ...

axios でリクエストをキャンセルし、重複リクエストを防ぐ方法について簡単に説明します。

目次序文コア - キャンセルトークン実用的なアプリケーションとパッケージングいくつかの小さな詳細序文...

高性能なウェブサイトのための14のテクニック

オリジナル: http://developer.yahoo.com/performance/rule...

Vueカスタムテーブル列実装プロセス記録

目次序文レンダリングsetTable コンポーネント使用結論序文フォームを使用して PC 側のプロジ...

HTMLページ作成に関する私の経験の簡単な要約

Word of Mouth に入社して 3 ~ 4 か月が経ちました。仕事の中で一番の収穫は、ビジュ...

ES6 ループと反復可能オブジェクトの例

この記事では、ES6 の for ... of ループについて説明します。古い方法以前は、JavaS...

Vueコンポーネントの詳細な説明

<本文> <div id="ルート"> <h2&...

サブクエリ最適化における MySQL 選択の実装

以下のデモはMySQLバージョン5.7.27に基づいています。 1. MySQLサブクエリ最適化戦略...

Nginx プロキシ axios リクエストと注意事項

序文最近、小さなデモを作成しました。大規模な工場のオンライン データを使用したため、インターフェイス...

MySQL で重複レコードをクエリして削除する方法の完全なガイド

序文この記事では主に、MySQL で重複レコードをクエリして削除する方法を紹介します。参考と学習のた...

VueはTeleportをベースにModalコンポーネントを実装します

目次1. テレポートについて知る2. テレポートの基本的な使い方3. 最初のステップの最適化4. 第...

ボタンの権限判定を実装するためのVueカスタムv-has命令

アプリケーションシナリオバックグラウンド管理システムを例にとると、各ユーザーには異なるボタン権限があ...

MySQL 5.7.18のインストール方法とMySQLサービスの起動手順の詳細な説明

MySQL は非常に強力なリレーショナル データベースです。しかし、初心者の中には、インストールや設...