如何显示"保存的数据"通知ngrx-store和Angular 5

时间:2018-01-11 13:17:52

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

我使用带有效果的ngrx-store 4.x和Angular 5.

我有一个简单的用例,我需要在后端成功保存数据时显示通知。

目前我不确定实现这一目标的最佳途径是什么。我看到两个选择:

  1. 商店中的标志和组件中的标志:
    • 添加" dataSaved"在商店里的旗帜。保存数据时,来自效果的Action将此标志设置为true。
    • 在角度组件中,添加一个额外的标志"已发送"。按钮" Save"被压了。
    • 如果两个标志都为真,则显示"保存的数据"对话框。
  2. 商店中的旗帜和重置动作:
    • 添加" dataSaved"在商店里的旗帜。保存数据时,来自效果的Action将此标志设置为true。
    • 重置" dataSaved"在组件的ngOnInit方法中标记。
    • 如果" dataSaved" flag为true,显示"保存的数据"对话框。
  3. 我发现选项2中存在潜在问题:如果请求需要很长时间,用户可以离开组件并再次返回,如果请求结束,则会突然显示保存的通知。

    这两个选项看起来有点过于复杂 - 有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

在成功处理后端服务调用时,调度相关的成功操作。

  1. 您可以将这些成功操作映射到传递给reducer的通知操作,并通过商店选择器传递给通知组件。

  2. 您可以将该成功ID添加到商店状态。并从您当前实体的ID过滤组件中的商店状态属性中进行选择。 https://youtu.be/vX2vG0o-rpM?t=745

  3. 中显示了类似的内容

    我个人会选择选项1.因为这会将通知与实际组件分离,从而可以在需要时更轻松地交换通知组件。