canDeactivate之外的Angular 2错误路由-最佳工作流程

时间:2018-09-07 05:46:39

标签: angular

在使用canDeactivate和服务器错误重定向时,我有一个关于最佳工作流程的问题。在我的canDeactivate中,我调用formService将数据保存到API。在我的FormService中,我有一个错误处理程序,并且在其中设置了针对服务器/授权错误的重定向。但是,这种重定向只会触发canDeactivate再次初始化,我可能会陷入循环。

防止这种情况发生的唯一方法是将对我的组件的引用传递到formService方法中,如果出现错误,则将我的组件中的'canDeactivate'变量设置为true,然后执行重定向,但这似乎很hacky。

之所以将数据保存在canDeactivate中是因为我的应用程序是一种大型应用程序表单,因此当用户编辑页面并尝试浏览时,我会自动保存它。 我所有的组件都使用一个canDeactivate类,因此保存数据的API调用仅在此处进行,而不是在每个组件中都重复API调用。

我显然可以将错误传递给canDeactivate并在那里进行错误处理,但是如果我可以对所有API调用在formService中进行错误处理,而不是在两个地方重复进行,那将是很好的。

任何建议/意见将不胜感激。

谢谢!

0 个答案:

没有答案