在 Ionic 3 Angular 4 中将 json 对象与下拉列表集成
Integrate json object with dropdown in Ionic 3 Angular 4
我一直在尝试将 json 响应集成到 ion-option 标签中。
这是我的 html 代码:
<ion-item>
<ion-label>Country</ion-label>
<ion-select formControlName="country">
<ion-option *ngFor="let value of values">{{value}}</ion-option>
</ion-select>
</ion-item>
我的值 json 对象如下所示:
values = {4: "Afghanistan", 8: "Albania", 10: "Antarctica", 12: "Algeria"};
这是在上述html文件的相关class中定义的。
我收到以下错误:
ERROR Error: Cannot find a differ supporting object '[object
Object]' of type 'object'. NgFor only supports binding to Iterables
such as Arrays.
有人能告诉我我做错了什么吗? JSON对象的格式不支持吗?
提前致谢!
你的值是一个对象,它应该是一个数组,如下所示,
values = [{"Afghanistan", "Albania","Antarctica", "Algeria"}];
您可以将对象转换为数组,如下所示,
var obj = {4: "Afghanistan", 8: "Albania", 10: "Antarctica", 12: "Algeria"};
var result = Object.keys(obj).map(function(key) {
return obj[key];
});
console.log(result);
与@Sajeetharan 的回答略有不同。如果您的数据在数组中就足够了,因为 JSON 不能直接迭代 ngFor
values = {
data: [
{id: "4", value: "Afghanistan"},
{id: "8", value: "Albania"},
{id: "10", value: "Antarctica"},
{id: "12", value: "Algeria"},
]
};
然后你可以做
<ion-option *ngFor="let val of values.data">{{val.id}}----{{val.value}}</ion-option>
您好,我实际上使用了其中一个答案中提供的功能:
回答者:Ankit Singh
他提到了函数的使用:
generateArray(obj){
return Object.keys(obj).map((key)=>{ return obj[key]});
}
它将我的 json 对象转换为数组!
我一直在尝试将 json 响应集成到 ion-option 标签中。 这是我的 html 代码:
<ion-item>
<ion-label>Country</ion-label>
<ion-select formControlName="country">
<ion-option *ngFor="let value of values">{{value}}</ion-option>
</ion-select>
</ion-item>
我的值 json 对象如下所示:
values = {4: "Afghanistan", 8: "Albania", 10: "Antarctica", 12: "Algeria"};
这是在上述html文件的相关class中定义的。
我收到以下错误:
ERROR Error: Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.
有人能告诉我我做错了什么吗? JSON对象的格式不支持吗?
提前致谢!
你的值是一个对象,它应该是一个数组,如下所示,
values = [{"Afghanistan", "Albania","Antarctica", "Algeria"}];
您可以将对象转换为数组,如下所示,
var obj = {4: "Afghanistan", 8: "Albania", 10: "Antarctica", 12: "Algeria"};
var result = Object.keys(obj).map(function(key) {
return obj[key];
});
console.log(result);
与@Sajeetharan 的回答略有不同。如果您的数据在数组中就足够了,因为 JSON 不能直接迭代 ngFor
values = {
data: [
{id: "4", value: "Afghanistan"},
{id: "8", value: "Albania"},
{id: "10", value: "Antarctica"},
{id: "12", value: "Algeria"},
]
};
然后你可以做
<ion-option *ngFor="let val of values.data">{{val.id}}----{{val.value}}</ion-option>
您好,我实际上使用了其中一个答案中提供的功能:
他提到了函数的使用:
generateArray(obj){
return Object.keys(obj).map((key)=>{ return obj[key]});
}
它将我的 json 对象转换为数组!