Angular で@Input()を使用する
この記事はすべて、Angular@Input()
について説明しています。これは、Angular で使用される関数で、ユーザーから入力を受け取り、それをプログラムでの処理に使用します。この関数を使用して、ファイルを読み取り、外部 API からデータを取得することもできます。
Angular の@Input()
ディレクティブ
@Input()
ディレクティブは、その名前が示すように、入力フィールドに使用されます。 @Input()
は、フォームフィールドおよびテキストボックスでのユーザー入力をキャプチャするのに最適です。
ユーザーが情報を入力すると、フィールドまたはテキストボックスの値が自動的に更新されます。また、他の入力および ngModelOptions
からの値を受け入れて、その値を自動的に更新します。
@Input()
ディレクティブには、type
、name
、および value
の 3つの属性があります。
type
属性は、作成する入力フィールドタイプを指定します。name
属性は入力フィールドの ID を指定し、JavaScript コードでその名前として使用されます。- デフォルト値が設定されていないテキスト入力フィールドを作成する場合は、
value
属性が必要です。
以下は、入力フィールドの有効なタイプのリストです。
Text
Password
Email Address
Number
Date Picker
(Date
)Time Picker
(Time
)Range Slider
(Range
)Checkbox
(Checkbox
)
@Input()
を使用するには、目的の HTML 要素にディレクティブとして追加する必要があります。
@Input()
は、親コンポーネントから子コンポーネントにデータを送信するために使用されますが、 @Output()
は、子コンポーネントから親コンポーネントにデータを渡すために使用されます。 @Input()
の典型的な例は、ユーザーの年齢を尋ねることです。
次のコードは、ユーザーの年齢を尋ねるプロンプトを表示し、それを呼び出し元の関数に返します。呼び出し元の関数は、年齢と呼ばれる変数に割り当てます。
var age = Input("Please enter your age");
Angular アプリケーションで@Input()
を使用する手順
Angular アプリケーションで@Input()
を使用するには、次の 3つの手順があります。
-
HTML 要素に
@Input()
を追加します。 -
入力でバインドする要素に
ng-model
属性を追加します。 -
コントローラーの
ng-model
属性に式を割り当てます。
TypeScript コード:
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
isFocusStyle = false;
type = 'INFO';
onFocus() {
this.isFocusStyle = true;
this.type = 'INFO';
}
onEnter() {
this.isFocusStyle = false;
const input = document.querySelector('input');
}
}
HTML コード:
<h1>Example of Angular Input</h1>
<div class="input-wrapper" [ngClass]="{'focus-style': isFocusStyle}">
<input type="test" placeholder=" Write " (focus)="onFocus()">
</div>
上記のコードのライブデモンストレーションを確認するには、こちらをクリックしてください。
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook