【发布时间】:2017-01-28 02:18:34
【问题描述】:
我正在使用 Typescript 和 Angular 2 我想从一些 json 数据动态创建枚举。 例如,我想为下拉菜单设置枚举,并想从 json 中获取选项。如何做到这一点?
【问题讨论】:
-
听起来你只需要显示一个项目列表,为什么还要麻烦枚举?
标签: json angular typescript enums
我正在使用 Typescript 和 Angular 2 我想从一些 json 数据动态创建枚举。 例如,我想为下拉菜单设置枚举,并想从 json 中获取选项。如何做到这一点?
【问题讨论】:
标签: json angular typescript enums
在 Typescript 中,enums 被转译为 JS 数组(参见 Enums in TypeScript: what is the JavaScript code doing?)。
所以,如果你想动态加载一个枚举,你只需要加载一个数组。
但是如果你的目标是从这个枚举中创建一个选择,你应该明确地反序列化你的 json 并将它传递给一个嵌入了 select 的组件,使用 *ngFor 从你的对象创建 options。
最简单的方法是以这种方式格式化您的 JSON:
{
"selectData":[
{
"key":"foo",
"value":"bar"
}
]
}
通过这种方式,您可以加载 json 并在 selectData 数组上进行迭代,使用 key 和 value 值来创建您的选择。
【讨论】:
array。您只需要将 JSON.parse json 结果放入您的 subscriber 并使用数据绑定将 yourJsonObj.selectData 传递给您的选择组件。