ui-路由器 "The transition was ignored" 在状态转换期间
ui-router "The transition was ignored" during state transition
我想为我的应用程序的某些状态设置通用错误处理程序,例如 main.*
,如果任何状态 resolves
失败,我想将用户重定向到通用错误页面。
我设置了以下错误处理程序:
$transitions.onError({to: "main.*"}, function (trans) {
$state.go("transition-error")
});
但是如果我点击 link 说 <a ui-sref="main.profile"> profile </a>
,并且转换成功,然后我第二次点击那个 link,我的错误处理程序会执行并出现错误消息:"The transition was ignored"
,出现此类错误时如何防止执行错误处理程序?为什么我会收到此错误消息?
可以使用 trans.error()
从转换中检索错误详细信息。该值是一个 Rejection
对象。在您的 onError
处理程序中,检查拒绝的类型。例如,您可以选择仅在拒绝类型为 "ERROR":
时重定向
$transitions.onError({to: "main.*"}, function (trans) {
var rejection = trans.error();
if (rejection.type === RejectType.ERROR) { // === 6
$state.go("transition-error");
}
});
https://ui-router.github.io/ng1/docs/latest/classes/transition.rejection.html#type
https://ui-router.github.io/ng1/docs/latest/enums/transition.rejecttype.html#error
我想为我的应用程序的某些状态设置通用错误处理程序,例如 main.*
,如果任何状态 resolves
失败,我想将用户重定向到通用错误页面。
我设置了以下错误处理程序:
$transitions.onError({to: "main.*"}, function (trans) {
$state.go("transition-error")
});
但是如果我点击 link 说 <a ui-sref="main.profile"> profile </a>
,并且转换成功,然后我第二次点击那个 link,我的错误处理程序会执行并出现错误消息:"The transition was ignored"
,出现此类错误时如何防止执行错误处理程序?为什么我会收到此错误消息?
可以使用 trans.error()
从转换中检索错误详细信息。该值是一个 Rejection
对象。在您的 onError
处理程序中,检查拒绝的类型。例如,您可以选择仅在拒绝类型为 "ERROR":
$transitions.onError({to: "main.*"}, function (trans) {
var rejection = trans.error();
if (rejection.type === RejectType.ERROR) { // === 6
$state.go("transition-error");
}
});
https://ui-router.github.io/ng1/docs/latest/classes/transition.rejection.html#type
https://ui-router.github.io/ng1/docs/latest/enums/transition.rejecttype.html#error