すみません。教えてください。
angularにてユーザーフォームを作成しています。
フォーム項目の"年齢"を選択した後、submit先のshow()関数にて結果を受け取りコンソール出力しているのですが
もっと簡単にソースを実装したいと考えています。
現在は以下のコードで実装しています。
■ app.component.ts
Typescript
1...(省略) 2 // 変数宣言:プルダウンメニュー表示用 3 ages: Number[] = [ 4 21, 5 22, 6 23, 7 ]; 8 9 // 変数宣言:コンソール結果用 10 age: Number; 11 12 // 関数:コンソール表示用 13 show() { 14 console.log(this.age); 15 } 16...(省略)
■ app.component.html
html
1<form #myForm="ngForm" (ngSubmit)="show()"> 2 年齢: 3 <select name="age" [(ngModel)]="age" required> 4 <option disabled="disabled" [value]="undefined">選択</option> 5 <option *ngFor="let item of ages" [value]="item" [disabled]="item.disabled" [selected]="item.value === age">{{item}}</option> 6 </select><br> 7 <input type="submit" value="送信" [disabled]="myForm.invalid"> 8</form>
■ app.component.css
css
1select{ 2 padding:10px; 3 font-size:1em; 4 color:#aaa; 5 border:solid 1px #ccc; 6 margin:0 0 10px; 7 border-radius: 5px; 8} 9.age { 10 width:100px; 11}
教えて頂きたいのは、この処理を以下のようなコードで実装したいと考えています。
■ app.component.ts
Typescript
1...(省略) 2 // 変数宣言:プルダウンメニュー表示用 3 ages: Number[] = [ 4 21, 5 22, 6 23, 7 ]; 8 // 関数:コンソール表示用 9 show(i: Number) { 10 console.log(this.age[i]); 11 } 12...(省略)
受け取りのためだけに新たにage変数を利用せずに、既存の配列変数から要素を取り出したいんですが
どうにもshow()関数に配列数のiを引き渡すことが出来ずに何時間も手づまり状態です…。
試したことは、*ngForディレクティブに"index as i"を指定したんですが
そこから先、そのiをshow()関数に渡せず...。
どのようにすればshow()関数にiを引き渡す事が出来るでしょうか?
申し訳ありませんが、どなたかご教示頂ければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/14 14:03
2019/08/14 15:34
2019/08/14 16:31
2019/08/15 04:36 編集