angular - 如何在rxjs6中注册路由监听并更改标题?

标签 angular router rxjs6

  • rxjs5(angular6 app) 中,我使用

    this.router.events
      .filter(event => event instanceof NavigationEnd)
      .map(() => this.activatedRoute)
      .map(route => {
        while (route.firstChild) {
          route = route.firstChild;
        }
        return route;`enter code here`
      })
      .filter(route => route.outlet === 'primary')
      .mergeMap(route => route.data)
      .subscribe((event) => {
        this.titleService.setTitle(event['title'] + '-' + APP_NAME);
        this.appDataLogic.urlChanged();
    });
    
  • 但是在 rxjs6 中,route{} 所以有错误 property firstChild does not exist on type {

    this.router.events.pipe(
      filter(event => event instanceof NavigationEnd),
      map(() => { return this.activatedRoute }).pipe(),
      map(route => {
        while (route.firstChild) {
          route = route.firstChild;
        }
        return route;
     }),
     filter(route => route.outlet === 'primary'),
     mergeMap(route => route.data)
     ).subscribe((event) => {
     this.titleService.setTitle(event['title'] + '-');
    })
    
  • 如何用 rxjs6 重写它?非常感谢。

最佳答案

感谢您的回答,我找到了一个解决方案:

```
 this.router.events.pipe(
      filter(event => event instanceof NavigationEnd),
      map(() => this.activatedRoute),
      map(route => {
        while (route.firstChild) {
          route = route.firstChild;
        }
        return route;
      }),
      filter(route => route.outlet === 'primary'),
      mergeMap(route => route.data)
    ).subscribe((event) => {
      //some code
    })
```

但是我还有一个问题,它在app.component.ts中的ngOnInit()中使用,app.component.ts是我的根组件,我应该在 ngOnDestroy() 中取消订阅吗?

关于angular - 如何在rxjs6中注册路由监听并更改标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52435848/

相关文章:

rxjs6 - RxJS 版本 6 中的 Observable 与管道运算符合并

javascript - BehaviorSubject 与 combineLatest 的奇怪行为

angular - 单击事件不适用于带有 ngbButton 的 Angular 4 Bootstrap 中的输入类型 ="radio"

typescript - 类型 '{}' 不可分配给类型 'string'

angular - 如何在 Angular 2 中创建高阶组件

linux - 如何正确发送路由器通告?

javascript - Angular 中性能.navigation.type 的替代品是什么?

angular - 订阅路由守卫中的可观察对象及其含义

Angular - 类型 'string' 不可分配给类型 'boolean'

javascript - 订阅数据到来后如何正确运行方法?