【发布时间】:2021-01-09 16:10:49
【问题描述】:
这是我的服务类方法
public getSidebarItems(): Observable<INavData[]> {
// let params = new HttpParams();
// params = params.set('userId', userid.toString());
return this.httpClient.get<Result<INavData[]>> (`${baseUrl}/GetMenusByRoles`)
.pipe(map( res => res.data));
}
这是我从 api 收到的 json 文件
[{"id":1,"name":"Dashboard","url":"/dashboard","icon":"icon-speedometer","parentId":null,"parent" :null,"children":[]},{"id":2,"name":"User","url":"/user/user-list","icon":"icon-list"," parentId":null,"parent":null,"children":[]},{"id":3,"name":"Role","url":"/role/role-list","icon" :"icon-folder-alt","parentId":null,"parent":null,"children":[]},{"id":4,"name":"Bank","url":"/银行/银行列表","icon":"icon-folder-alt","parentId":null,"parent":null,"children":[]},{"id":5,"name": "分支","url":"/branch/branch-list","icon":"icon-folder-alt","parentId":null,"parent":null,"children":[]},{ "id":6,"name":"Customer","url":"/customer/customer-list","icon":"icon-folder-alt","parentId":null,"parent":null ,"children":[]},{"id":7,"name":"Transaction","url":"/transaction/transaction-list","icon":"icon-folder-alt"," parentId":null,"parent":null,"children":[{"id":8,"name":"Test","url":"/report/transaction-report\n","icon": "icon-folder-alt","parentId":7,"children":[]}]}]
我必须删除空的“孩子”:[]
items$: 可观察的
let result=this.sidebar.getSidebarItems();
this.items$ = result.pipe(
map( sidebarItems => {
return sidebarItems
.filter( value=> Object.keys( value ).length !==0 )
}));
以上代码fremove empty
我的问题是
- 上面的代码不起作用..我必须删除带有节点子节点的空子节点“:[]。
请告诉我..谢谢
编辑:
export interface INavData {
name?: string;
url?: string;
icon?: string;
childrens?: INavData[];
..other property
}
编辑 1:
更新代码后:
result.pipe(
map(x => {
return this.removeEmptyObjects(x);
})
).subscribe(results => { console.log(results); });
【问题讨论】:
-
您想从空对象中删除键,对吗?
-
是的@VimalPatel ..我必须删除“孩子”:[]。 (只有空子)模型在问题中更新。
标签: angular typescript rxjs