NgRx免费加载页面相关内容订阅

时间:2017-09-03 10:30:24

标签: ngrx

在我检查它是否已经加载之后,当我转到特定页面时,下面发送一个http请求(加载后我添加到状态的标志)。
有没有更好的方法,可能是免费订阅方式呢? 也许在路由器商店有一些钩子,一些效果可以让我检查"状态"和"路线"如果发送动作?

ngOnInit() {
  this.pageContentSubscription = this.store.select(fromPageContentReducers.getPageContentLoaded)
    .subscribe(loaded => {
      if (!loaded) {
        this.store.dispatch(new pageContentAction.Load());
      }
    });
  this.pageContentSubscription!.unsubscribe();
}

此外,这也不能同时加载异步加载的真实内容,因为在收到内容之前它将被取消订阅。

但是,如果我将取消订阅移至ngOnDestroy,则在从该页面注销时将再次加载内容,因为我运行将恢复其初始状态的pageContent.Clear()操作,包括&# 34;装载"标志从" auth.LOGOUT"行动。

@Effect()
clearPageContent$: Observable<Action> = this.actions$
  .ofType(auth.LOGOUT)
  .map(() => new pageContent.Clear());

那么我对unsubscribe中的ngOnDestroy所拥有的内容如下:
 *加载页面内容
 *用户注销
 *交易被清除,状态为#34;已加载&#34;恢复为false,但是 仍然听着#34;加载&#34;将再次触发内容加载的条件
 *开始将用户重定向到受保护页面之外的过程
 * PageContent取消订阅太晚了

我该如何解决这个问题?

0 个答案:

没有答案