我正在尝试了解Flux并为Angular应用程序实现它 我有记录创建表单流的问题(无论是Angular还是问题 - 问题是关于模式和问题与React相同)。
让我们考虑一下这个简单而常见的场景:
带有“保存”按钮的模态表单对话框,用于创建项目。
当用户点击“保存”表单时,将数据提交给服务器。
如果出现错误,则会以
如果'save'成功,服务器生成的ID响应,表单关闭,记录使用ID刷新
通常我会调用service的方法,该方法返回带有ID或ERRORS的承诺
如何通过Flux的“即发即忘”行动来实现这一目标?
如何检索服务器状态,以便关闭对话框或打开它并显示错误?
如何从服务器检索ID,以便我可以使用它的ID从Store刷新我的数据?
如何从服务器检索验证错误?
答案 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
});
})
});
}