javascript - http请求前的数据过滤器完全
问题描述
我通过http请求得到了所有的菜单列表,然后将其传递给垂直模块,然后垂直模块使用菜单列表过滤父菜单,但是当垂直模块过滤时,http请求没有完全获取数据,我该如何解决这个问题问题?谢谢!
export class SidenavComponent implements OnInit {
public menuItems: Array<any>;
public settings: Settings;
constructor(public appSettings: AppSettings, public menuService: MenuService) {
this.settings = this.appSettings.settings;
}
ngOnInit() {
this.menuItems = this.menuService.getVerticalMenuItems();
}
}
<div id="vertical-menu" [perfectScrollbar]="psConfig" [disabled]="!settings.fixedSidenavUserContent">
<app-vertical-menu [menuItems]="menuItems" [menuParentId]="0"></app-vertical-menu>
</div>
export class VerticalMenuComponent implements OnInit {
@Input('menuItems') menuItems;
@Input('menuParentId') menuParentId;
parentMenu: Array<any>;
public settings: Settings;
constructor(public appSettings: AppSettings, public menuService: MenuService) {
this.settings = this.appSettings.settings;
}
ngOnInit() {
// when filter the menuItems.length=0
this.parentMenu = this.menuItems.filter(item => item.parentId === this.menuParentId);
}
}
<div *ngFor="let menu of parentMenus" class="menu-item">
</div>
解决方案
您可以尝试在孩子中设置功能:
parentMenu;
@Input()
set menuItems(passedValue: any[]) {
console.log(passedValue)
if (!passedValue.length) {
return;
} else {
this.parentMenu = passedValue.filter(item => item.parentId === this.menuParentId);
}
}
}
推荐阅读
- java - Android Powermockito 如何模拟吐司
- python - 如何在不使用 python 中的 pandas 的情况下将查询结果保存到 csv 文件中?
- python-3.x - 如何在用新数据填充之前在管理命令中清空 Django 表的所有内容
- mysql - 仅针对具有相同“id”的行获取两个表之间的时间差 - MySQL
- go - 基于线性时间的多个标准的切片中的广义计数元素
- c# - 特定异常类型的异常处理
- ruby-on-rails - 简单的多态连接返回未知列
- angular - 如何使用角度材料下拉菜单制作选定的颜色或字体?
- gitlab - 在 Gitlab 中使用并行关键字减少构建管道时间?
- audio - 如何将 wav 转换为带有时间码的 mxf 文件?