Angular 5随着路线的改变而改变元素

标签 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; }
    });
}

最佳答案

订阅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)
       );
    }
}

关于Angular 5随着路线的改变而改变元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48354845/

相关文章:

css - 如何增加 primeng 表分页(翻页)按钮的宽度?

javascript - Angular 2 JSONP 请求中未发送授权 header

angular - 在 Ionic 2 中播放 Youtube 视频

javascript - 基于 Angular Reactive Forms 验证更改输入元素 CSS

Angular Material 自定义输入验证消息未随 mat-stepper 显示

angular - ngx-translate:如何 'translate' 一个 html 属性?

angular - AWS Cognito : Missing 'get' method for AWS. config.credentials

angular - 如何更改 Angular Mat 表格头行背景颜色、字体等

Angular 5 Animation 为 ngFor 中的多个列表项运行

angular - 将子组件表单绑定(bind)到父组件表单