gpt4 book ai didi

angularjs - 如何处理 resolve : clause of $routeProvider 中的异常

转载 作者:行者123 更新时间:2023-12-02 01:51:22 25 4
gpt4 key购买 nike

假设用户需要通过单击指向人员详细信息页面的超链接从列表页面/people 导航到详细信息页面/person_detail?Id=12。与此同时,另一个用户删除了 id=12 的 person 对象。

这将导致无法解析“resolve:”子句或 $routeProvider 中的人员信息。因此,URL 将更改为/person_detail?Id=12,但浏览器仍会显示列表页面。

我敢打赌这是 AngularJS 的一个典型问题。 URL 需要更改才能调用“resolve:”,但是当“resolve”失败时,浏览器会以错误的 URL 结束。有没有好的通用方法来处理它?<​​/p>

下面是说明问题的代码

$routeProvider.when('/people', { //called for list page
controller: ListController,
templateUrl: "/List.html",
}).when('/person_detail', { //called for detail page
controller: DetailController,
templateUrl: "/Detail.html",
resolve: {
return CallAjax($route.current.params.Id); //suppose this function failed???
}
})

最佳答案

至于resolve属性,你可以设置一个包含promise的对象映射。您可以在 promise 中使用 catch 子句来处理任何 fatal error 。

或者你可以监听 $routeChangeError 事件。如果任何 resolve promises 被拒绝,这将被广播。

以下链接很好地解释了如何处理 resolve。

http://blog.brunoscopelliti.com/show-route-only-after-all-promises-are-resolved

关于angularjs - 如何处理 resolve : clause of $routeProvider 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22468757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com