使用路由之间共享的数据填充ngrx存储

时间:2017-06-05 22:07:16

标签: javascript angular ngrx ngrx-effects ngrx-store

我有一个跨多个路径的多页表单。所有路由都需要从API共享相同的数据。我可以在ngrx/store内存储API的响应,并使用效果触发API调用。我的问题更多的是关于在何处启动API调用。一旦用户通过身份验证就需要进行API调用,这发生在我遇到的第一条路径上(访问多页表单的第一部分之前)。我提出的两个选项是:

  1. 在每个路线的组件内触发效果意味着我每次访问路线时都必须要求提供信息。在用户未经过身份验证时,警卫会阻止所有页面都可访问。

  2. 在效果中收听经过身份验证的成功操作,并在那里向API发出请求。

  3. 我确信这两者都是完全可以接受的并且有所折衷。得到一些意见真的很好!

1 个答案:

答案 0 :(得分:2)

第二个是最好的,在用户进行身份验证时请求信息按需提供,并且允许使用它更有意义。正如你所说,在守卫内部,你应该在你返回true之前发送加载信息的动作/(true)以表示可以激活路线。这种天真的方法会触发您尝试激活受保护路线的每一天的信息请求。