使用 ngrx 效果或组件提交数据



我们在这里与我的一个朋友讨论了一个任务,其中"如果点击表单的提交按钮会发生什么"? 要求是首先使用 ngrx 存储中的数据验证该表单,然后将该数据提交到服务器。

。所以有两种方法可以做到这一点:

  • 使用将在调度"SUBMIT_ACTION"时触发的 ngrx/效果。它将获取数据,然后通过服务调用API

  • 使用该组件 - 它将"获取(1("配置,验证一切正常,然后通过服务调用 API

据我所知 - 在这种情况下使用效果是很常见的事情。你觉得怎么样?

这个问题可能没有正确的答案。 就个人而言,我不喜欢将验证推入商店。我更喜欢使用 angular 的内部验证工具来验证我的表单。 对于我当前的项目,我们使用反应式表单来验证输入,然后使这些表单与商店保持同步。 (此外,我们正在同步有效、已触摸、待处理、错误等属性(

一个优点是,您基本上可以从任何地方提交表单,或者将它们分成更小的部分并合并它们,然后再将它们发送到服务器。 而且,您可以编写可重用的角度组件,这些组件与底层存储体系结构无关,并且可以轻松重构。若要将窗体绑定到存储区,可以使用服务或抽象类。

简短示例:

  • 反应式表单验证输入
  • 表单数据与商店同步(包括它是否有效、挂起、错误(
  • UI 元素(提交按钮/表单禁用/微调器(链接到有效/挂起属性
  • 调度"SUBMIT_ACTION"并将状态更改为挂起=真
  • 效果正在等待答案并发送"SUBMIT_ACTION_ERROR"或"SUBMIT_ACTION_SUCCESS">
  • 显示
  • 错误或显示成功通知

我认为这个问题没有正确的答案,这完全取决于,作为开发人员,您的工作是选择正确的解决方案。

就个人而言,如果它是一个简单的形式,我会做:

验证
  • 表单是否正确填写(客户端验证(
  • 使用(可序列化的(表单对象调度保存操作,这不是 Angular 的形式,而只是一个 JavaScript 对象
  • 在效果中侦听此操作并调用服务
  • 如果出现问题:显示消息(通知、烤面包机、小吃店等(
  • 如果一切正常:关闭表单

相关内容

  • 没有找到相关文章

最新更新