Angular 2:使用字典数组创建下拉列表

时间:2016-04-21 18:57:38

标签: angularjs json angular

我在Angular 2中使用选项标签来填充我的下拉列表。下拉列表正在使用dateTest1.json正确填充,但是,当通过.json文件中的给定键的值进行迭代时,则无法填充下拉列表。使用下面的dateTest.json示例填充下拉列表时,Angular 2中的正确方法是什么?

从dateTest.json检索时,

*.component.htmlEXCEPTION: 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"},
    ...
 ]

1 个答案:

答案 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]