我有一个包含某些属性的用户的数组。当用户更改路径时,它应该只显示具有某个特定属性的人,这些属性放在url中。
目前我只能在任何地方显示所有用户,并且在更改id
时组件似乎无法更改。
我试过这个
ngOnInit(): void {
const id = +this.route.snapshot.paramMap.get('departmentId');
this.employeeService.getEmployees()
.subscribe(emps => this.employees = emps);
this.employees = this.employees.map(emp => {
if (emp.departmentId === id) { return emp; }
});
}
答案 0 :(得分:2)
订阅route.params
以处理更改。
然后请注意getEmployees()
是异步的。因此,当您尝试过滤时,变量this.employees
可能尚未初始化。您可以在订阅中进行过滤。
做类似的事情:
ngOnInit(): void {
this.route.params.subscribe(params => {
const id = +params['departmentId'];
this.employeeService.getEmployees().subscribe(emps =>
this.employees = emps.filter(emp => emp.departmentId === id)
);
}
}