Route在返回时返回空白页,但在Angular 7应用中刷新页面时加载

时间:2019-08-03 16:52:25

标签: angular asynchronous refactoring

我想知道为什么这样做。我讨厌修理东西,不知道自己刚刚修理了什么。

虽然在重构代码时遇到了一个错误,但该错误在路由加载之前见过,但是该组件未执行。我有一个简单的博客页面,可以懒惰地加载博客列表。在您从列表中打开博客,然后返回到博客列表(空白)之前,此方法效果很好。

我曾经使用RXJS订阅功能,但是在听过NG-Conf讨论后,让异步管道打开HTML视图中的可观察对象。所以我决定尝试一下。由于Async会为您执行此操作,因此无需订阅/取消订阅。

这是我博客详细信息组件中的原始代码。

      ngOnInit() {
        this.subscription = this.blogService.blogs$.subscribe();
        this.blog$ = this.route.params
          .switchMap(param =>  this.blogService.getBlog(param.id));
      }

然后,我只是将服务设置为局部变量。这在ngOnInit之外。

    blog$ = this.blogService.blogs$

那行得通,但是我需要博客的ID,所以我尝试了这个。

     blog$ = this.blogService.blogs$ = this.route.params
            .switchMap(param =>  this.blogService.getBlog(param.id));

我有一个简单的后退按钮,可以将您带到/ blog路由,该路由以前工作正常,但现在当然会加载空白页面。

茫然地盯着我的电脑一会儿,我终于尝试了。

     blog$ = this.blogService.blogs$;

     ngOnInit() {
           this.blog$ = this.route.params
           .switchMap(param => this.blogService.getBlog(param.id));
      }

我假设ngOnInit生命周期钩子像以前一样设置id,但是我不明白为什么这会卡在第一个版本中,然后在刷新页面后起作用。

编辑错字

0 个答案:

没有答案