问题标签 [ngrx-router-store]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
818 浏览

angular - ngrx/effect 如何将参数从选择器解析为 GET

我从 Selected 服务选择器中获取 Id 和 ova,并希望将其解析为调用 API 端点的 GET 方法。这就是我所做的,但是在选择的服务页面加载时,当我记录数据时我得到空值。需要帮助。

0 投票
3 回答
1163 浏览

angular - 如何在具有 ngrx 实现的 Angular 应用程序中使用路由器状态

我知道可以使用@ngrx/router-store 将路由存储在一个状态中。

这个库将 Angular 路由器与 ngrx-store 绑定。

按照redux的原则,存储路由是有道理的,因为它是应用程序的状态变化,但是,实际上,存储的信息怎么办?只有当我们想在路由上实现副作用时它才有用吗?

0 投票
2 回答
766 浏览

angular - 路由器商店无法识别路由器参数

我们有以下路由场景:

我们的路由器存储无法识别userId这种方式,但是当我们删除children属性时,它确实识别userId.

这种行为背后的原因是什么?

0 投票
1 回答
502 浏览

angular - @ngrx/router-store/index 没有导出成员“RouterReducerState”

我正在尝试在@ngrx/router-store 上工作。我收到这个错误@ngrx/router-store/index has no exported member 'RouterReducerState'。我正在使用1.2.6@ngrx/router-store

0 投票
2 回答
2185 浏览

angular-routing - 使用路由器商店在效果模块中导航时如何获得激活的路由?

我正在尝试调度相对于组件路由的路由器存储导航操作。路由的跟踪日志显示导航所采用的相对路径是应用程序路径而不是组件路径。

ActivatedRoute在我的效果模块构造函数中注入了这似乎是这里的问题。如何在我的组件之外获取激活的路由并将其传递给导航操作?

0 投票
2 回答
577 浏览

angular - NgRx - 无法从 CustomSerializer Router Store 访问的多级路由参数

我有一个声明如下的路径:

然后,在 AppChildrenRoutes 内部

因此,在我的应用程序的某个时刻,我可以拥有localhost:4200/app/123/feature. 在这个组件中,通过一些操作,我可以导航到另一条路线,如下所示:


将其视为一个正在改变架构的大型企业级应用程序,逐步使用 NgRx。
所以,我遇到了路由器商店的问题。我已经设置了所有内容并且可以正常工作。
在路由器商店文档之后,我编写了一个自定义序列化程序,它看起来像这样

我发现,考虑到像这样的URI

route.params只返回参数,而search不是两者userIdsearch

- 我怎样才能实现从路径CustomSerializer中返回所有内容?params(在这种情况下,两者都是userIdsearch)。

我有点尝试但失败了,while循环的每次迭代,检查是否有一个参数并将它们添加到一个对象直到最后一个。好的、好的还是坏的方法?我怎么能做到这一点而不失败?
谢谢。

0 投票
1 回答
198 浏览

angular - 如何在 ngrx/router-store 上添加另一个状态?

我有一个如下定义的根级路由器存储。

我正在尝试添加一个额外的状态init,称为我想与路由器状态一起跟踪的状态。如何创建一个也可以访问初始化状态的功能选择器?换句话说,如何创建一个没有类型绑定到 RouterReducerState 的特征选择器?

0 投票
2 回答
1854 浏览

angular - 如何在 ngrx/effects 中访问解析器数据?(v7)

在组件中有 api 调用,这很耗时,所以我实现了解析器。我希望解析器数据存在于 store中,以供以后使用。我已经实现了ngrx/store、ngrx/effects和ngrx/router-store。

组件中的当前状态

  • 直接从组件中的解析器数据获取数据(路由类型为 ActivatedRoute) 补偿

期望的状态

为了保存解析器数据,我需要访问有效的解析器数据。所以我可以简单地在组件中调度动作并订阅状态。

  • 组件中的调度操作(LoadSubTopicDetails)
  • effects 将监听 action 并在 effects 中访问相同的解析器数据

问题

我总是{}在 CustomSerializer 的“数据”中变空。

  • 在 app-routing.module.ts 中使用解析器 路由模块

  • 路由到 SubTopic/:subTopicId 时的控制台输出 安慰


如何在效果中访问解析器数据?提前致谢。


代码

reducers / index.ts (CustomSerializer)

减速器 / router.selector.ts

组件.ts

0 投票
2 回答
2350 浏览

angular - 动作完成后的路由 - NGRX 和 Angular

角 5 和 NGRX 5

我试图在用户单击搜索按钮后运行一些自定义验证,如果验证成功,则路由到新页面。

我有一个 isError observable 正在从我的商店填充:

我正在调用我商店的搜索操作,如下所示:

我感到困惑的是如何/何时实际路由到新页面?我本质上想要发生的是:

运行验证

如果成功 -> 路由到新页面

如果失败 -> 保持在更新状态的同一页面上(isError 状态将更新为 true,我有这个工作)

我已经研究过ngrx router-store,但总体上对实现这一点的最佳方式感到困惑。

0 投票
1 回答
1304 浏览

angular - 带有状态管理的 Angular 新窗口

  • 问题陈述:

我有一个要求:在 Angular 6 中打开一个新窗口,并在主窗口和辅助窗口之间建立双向通信。

  • 我试过的

我创建了一个服务 WindowRef 以使用角度“窗口”打开一个新窗口/选项卡。我创建了一个@ngrx/store 系统来管理应用程序中的状态。我可以在主窗口中管理任意数量的操作的应用程序状态,但是当我打开一个新窗口并尝试访问该状态时,它返回 null。

如果我可以保持状态,我可以尝试使用 ngStore 来调度操作,并尝试在主要和次要打开的窗口之间建立双向通信通道。

有人可以建议/指出一种实现上述要求的方法吗?