[解決済み] Angular 2の "select "で新しい選択範囲を取得するにはどうすればよいですか?
2022-03-21 04:44:46
質問
Angular 2 (TypeScript)を使用しています。
新しい選択範囲を使って何かをしたいのですが、その際に表示されるのは
onChange()
は常に前回の選択範囲です。どうすれば新しい選択範囲を取得できるのでしょうか?
<select [(ngModel)]="selectedDevice" (change)="onChange($event)">
<option *ngFor="#i of devices">{{i}}</option>
</select>
onChange($event) {
console.log(this.selectedDevice);
// I want to do something here with the new selectedDevice, but what I
// get here is always the last selection, not the one I just selected.
}
解決方法は?
双方向のデータバインディングが必要ない場合。
<select (change)="onChange($event.target.value)">
<option *ngFor="let i of devices">{{i}}</option>
</select>
onChange(deviceValue) {
console.log(deviceValue);
}
双方向のデータバインディングの場合、イベントとプロパティのバインディングを分離する。
<select [ngModel]="selectedDevice" (ngModelChange)="onChange($event)" name="sel2">
<option [value]="i" *ngFor="let i of devices">{{i}}</option>
</select>
export class AppComponent {
devices = 'one two three'.split(' ');
selectedDevice = 'two';
onChange(newValue) {
console.log(newValue);
this.selectedDevice = newValue;
// ... do other stuff here ...
}
もし
devices
がオブジェクトの配列の場合
ngValue
の代わりに
value
:
<select [ngModel]="selectedDeviceObj" (ngModelChange)="onChangeObj($event)" name="sel3">
<option [ngValue]="i" *ngFor="let i of deviceObjects">{{i.name}}</option>
</select>
{{selectedDeviceObj | json}}
export class AppComponent {
deviceObjects = [{name: 1}, {name: 2}, {name: 3}];
selectedDeviceObj = this.deviceObjects[1];
onChangeObj(newObj) {
console.log(newObj);
this.selectedDeviceObj = newObj;
// ... do other stuff here ...
}
}
プランカー
- は使用しません。
<form>
プランカー
- 用途
<form>
で、新しいフォーム API を使用します。
関連
-
[解決済み] グローバル定数の定義
-
[解決済み] セレクトボックスのプレースホルダーを作成するにはどうすればよいですか?
-
[解決済み] How can I set the default value for an HTML <select> element?
-
[解決済み] jQuery get specific option tag text
-
[解決済み] セレクトボックスのオプションをすべて削除してから、オプションを1つ追加して、jQueryで選択するにはどうすればよいですか?
-
[解決済み] jQueryでドロップダウンリストの選択値を変更する
-
[解決済み] Angularで@Input()の値が変更されたときに検出する方法は?
-
[解決済み] コンポーネントテンプレートで要素を選択するには?
-
[解決済み] オブジェクトのキーと値に*ngForでアクセスする
-
[解決済み] Angularでselect要素をオブジェクトにバインドする
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
angularjs ポップアップボックスの方法1
-
[解決済み] ルーターリンク]と[ルーターリンク]の違いについて
-
[解決済み] formGroup' は 'form' の既知のプロパティではないため、バインドできません。
-
[解決済み] Angular 2+でngShowとngHideに相当するものは何ですか?
-
[解決済み] Angular - すべてのリクエストにヘッダを設定する
-
[解決済み] Angular 5 - クリップボードにコピーする
-
[解決済み] テンプレート駆動型とリアクティブ型の実用的な違いとは?
-
[解決済み] Angular 4 HttpClient クエリパラメータ
-
[解決済み] テンプレート内の *ngIf else if
-
[解決済み] selectタグのngModelの変更を検出する方法(Angular 2)?