我在Angular 2中使用选项标签来填充我的下拉列表。下拉列表正在使用dateTest1.json
正确填充,但是,当通过.json文件中的给定键的值进行迭代时,则无法填充下拉列表。使用下面的dateTest.json
示例填充下拉列表时,Angular 2中的正确方法是什么?
*.component.html
:EXCEPTION: TypeError: Cannot read property 'month' of undefined in [dateAttributesList.month in *Component@63:22]
<option *ngFor="#m of dateAttributesList.month" [value]="m">{{m}}</option>
dateTest.json:
[
{"month": ["Dec", "Jan", ...]},
{"day" : ["1","2"...]}
]
从dateTest1.json检索时* .component.html:正确填充
<option *ngFor="#m of dateAttributesList" [value]="m">{{m}}</option>
dateTest1.json:
[
{"month": "Dec"},
{"month": "Jan"},
{"month": "Feb"},
...
]
答案 0 :(得分:1)
如果您绑定的值由输入传递或由异步调用提取,请使用安全导航运算符:
<option *ngFor="#m of dateAttributesList?.month" [value]="m.month">{{m}}</option>
[value]
仅支持字符串值。如果您有对象值,请使用[ngValue]
<option *ngFor="#m of dateAttributesList" [ngValue]="m.month">{{m}}</option>
[ngValue]
仅适用于[ngModel]