出于某种原因,我在 app.component.ts 文件中有一个复杂的数据:
export class AppComponentimplements OnInit {
tests = {
'name': 'Bob',
'grade': '5th',
'score': [
['math', 'A', 'A+', 'A-'],
['english', 'B', 'B-', 'A'],
['french', 'A', 'A+', 'A'],
['chem', 'C', 'C', 'C'],
['sport', 'B', 'B', 'B']
]};
}
我想显示第一项'得分'进入选择/选项下拉按钮。
(这些是:['数学','英语','法语',' chem',' sport&# 39;])
在 app.component.html 文件中,以下代码是我多次尝试之一。但遗憾的是它不起作用。
<select>
<option *ngFor="let test of tests" [ngValue]="test.score[0]">
{{test.score[0]}}
</option>
</select>
我怎么能正确地做到这一点?
答案 0 :(得分:2)
您的HTML代码错误。
试试这个。
<select>
<option *ngFor="let score of tests.score" [ngValue]="tests.score[0]" >
{{score[0]}}
</option>
</select>
答案 1 :(得分:1)
正确的方法是,您应该能够获得选定的值:
<select id='subjects' [formControl]="selectedSubject">
<option *ngFor="let test of tests.score" [ngValue]="test[0]">
{{test[0]}}
</option>
</select>
如 [ngValue] ,如果您想要选择完整数组,可以使用test
:['math', 'A', 'A+', 'A-']
:
<option *ngFor="let test of tests.score" [ngValue]="test">
{{test[0]}}
</option>
或test[0]
如果您想要所选数组的第一个值(例如math
):
<option *ngFor="let test of tests.score" [ngValue]="test[0]">
{{test[0]}}
</option>
也不记得将ReactiveFormsModule
包含在AppModule中。如果我们想在代码示例中使用 Reactive Forms (formControl / formGroup指令...)