Flux和服务器记录验证和ID创建

时间:2015-11-25 09:07:43

标签: flux

我正在尝试了解Flux并为Angular应用程序实现它 我有记录创建表单流的问题(无论是Angular还是问题 - 问题是关于模式和问题与React相同)。

让我们考虑一下这个简单而常见的场景:

  1. 带有“保存”按钮的模态表单对话框,用于创建项目。

  2. 当用户点击“保存”表单时,将数据提交给服务器。

  3. 如果出现错误,则会以

  4. 的形式显示
  5. 如果'save'成功,服务器生成的ID响应,表单关闭,记录使用ID刷新

  6. 通常我会调用service的方法,该方法返回带有ID或ERRORS的承诺

    如何通过Flux的“即发即忘”行动来实现这一目标?

    如何检索服务器状态,以便关闭对话框或打开它并显示错误?

    如何从服务器检索ID,以便我可以使用它的ID从Store刷新我的数据?

    如何从服务器检索验证错误?

1 个答案:

答案 0 :(得分:0)

凭借助力,你不会像往常一样利用承诺。您的视图应该在您的Actions中调用一个方法,该方法执行ajax请求。这个ajax请求应该有一个成功/错误回调,这反过来会调度一个事件以及从服务器返回的数据。

然后,您的商店将接收此调度操作并存储它。商店将发出一个事件,这会导致您的视图从商店请求更新的数据。

即使是服务器返回的验证错误,这仍然适用。服务器将返回您的验证错误,这些错误将被分派到商店,您的视图将在其中获取验证状态/消息。

e.g。

<强> Actions.js

function postData(data, dialogId) {
    $.ajax({
      url: "/api/endpoint",
      data: data,
      type: "POST",
      success: function(response) {
          AppDispatcher.dispatch({
             actionType: "success",
             data: response,
             dialogId: dialogId
          });
      },
      error: function(error) {
          AppDispatcher.dispatch({
             actionType: "error",
             error: error,
             dialogId: dialogId
          });
      })
    });
}