Angular 如何从firebase获取嵌套json数据?
我想从来自实时数据库的数据创建一个下拉菜单。 我写了几行代码,但无法得到子类别 创建了一个接口Angular 如何从firebase获取嵌套json数据?,angular,firebase,Angular,Firebase,我想从来自实时数据库的数据创建一个下拉菜单。 我写了几行代码,但无法得到子类别 创建了一个接口 export interface MenuInfo { name: string; subcategory?: MenuInfo[]; } 这是来自firebase的json数据 category -LtygKwodI5HdptwuInj name: "Helmet" subcategory -LtygbtNUgCPC4paDswy
export interface MenuInfo {
name: string;
subcategory?: MenuInfo[];
}
这是来自firebase的json数据
category
-LtygKwodI5HdptwuInj
name: "Helmet"
subcategory
-LtygbtNUgCPC4paDswy
name: "full-face"
如何创建下拉菜单。
检索
键后
添加对节点子类别的引用
,订阅可观察对象,然后使用forEach可以访问子类别内的名称
值:
snapShot.forEach(element => {
let lists = this.fdb.list("category/"+element.key+"/"+"subcategory").snapshotChanges();
lists.subscribe(data => {
data.forEach(subElem => {
console.log(subElem);
});
});
});
什么是日志输出?我正在获取类别名称,但不是其子类别
错误:找不到类型为“object”的不同支持对象“[object object]”。NgFor仅支持绑定到诸如数组之类的Iterables。
子类别不是数组。你不能使用ngFor,它是一个子集合吗?如果是这样,只需执行ref.collection('something').doc('a').collection('else').doc('b'),因为它是单个对象,所以您可以在html代码中使用{{{subcategory.name}}
snapShotToArray(snapShot) {
let retArr: any[] = [];
snapShot.forEach(element => {
let obj: any = {};
obj = element.payload.val();
obj.key = element.key;
retArr.push(obj);
});
return retArr;
}
category
-LtygKwodI5HdptwuInj
name: "Helmet"
subcategory
-LtygbtNUgCPC4paDswy
name: "full-face"
snapShot.forEach(element => {
let lists = this.fdb.list("category/"+element.key+"/"+"subcategory").snapshotChanges();
lists.subscribe(data => {
data.forEach(subElem => {
console.log(subElem);
});
});
});