角度5改变了路线变化的元素

时间:2018-01-20 10:09:39

标签: angular

我有一个包含某些属性的用户的数组。当用户更改路径时,它应该只显示具有某个特定属性的人,这些属性放在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; }
    });
}

1 个答案:

答案 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)
       );
    }
}