小编Mar*_*epo的帖子

ngrx 使用搜索参数更新 url

我一直在查看ngrx 示例应用程序并尝试使用以下内容扩展它:

做这样的事情的正确方法是什么?

我已经添加了我的解决方案,它可以完成工作,但我不确定它是否有任何好处。在其中,我将查询参数存储在两个看起来像反模式的地方

我的解决方案:

在 app/books/effects/books.ts 中的搜索效果中添加了路由器导航,以便每当触发搜索时,url 都会使用查询字符串进行更新

search$: Observable<Action> = this.actions$.pipe(
  ofType<Search>(BookActionTypes.Search),
  debounceTime(this.debounce || 300, this.scheduler || async),
  map(action => action.payload),
  switchMap(query => {
    if (query === '') {
      return empty();
    }

    const nextSearch$ = this.actions$.pipe(
      ofType(BookActionTypes.Search),
      skip(1)
    );

    return this.googleBooks.searchBooks(query).pipe(
      takeUntil(nextSearch$),
      map((books: Book[]) => {
// added //
        this.router.navigate([], {
          queryParams: { query: query },
          queryParamsHandling: 'merge',
        });
///////////
        return new SearchComplete(books);
      }),
      catchError(err => of(new SearchError(err)))
    ); …
Run Code Online (Sandbox Code Playgroud)

ngrx angular ngrx-store ngrx-router-store

5
推荐指数
0
解决办法
1527
查看次数

带路由器插座的兄弟组件

我开始使用角度,我只是无法绕过路由器,这是我的问题....

让我们假设我有一个像这样的应用程序结构......

应用结构

现在在功能'C'组件html如下...

<feature-d-component></feature-d-component>
<feature-e-component></feature-e-component>
Run Code Online (Sandbox Code Playgroud)

每个都有一个路由器插座,即功能'D'组件和功能'E'组件具有如下相同的HTML

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

这可以实施吗?如果可以,你能给出一个路由配置示例,还有一个例子,如何通过routerLink路由到这个?

angular

3
推荐指数
1
解决办法
1370
查看次数

标签 统计

angular ×2

ngrx ×1

ngrx-router-store ×1

ngrx-store ×1