假设用户需要通过单击指向人员详细信息页面的超链接从列表页面 /people 导航到详细信息页面 /person_detail?Id=12。与此同时,另一个用户删除了 id=12 的 person 对象。
这将导致无法解析“resolve:”子句或 $routeProvider 中的人员信息。结果,URL 将更改为 /person_detail?Id=12,但浏览器仍将显示列表页面。
我敢打赌这是 AngularJS 的一个典型问题。URL 需要更改才能调用“resolve:”,但是当“resolve”失败时,浏览器会以错误的 URL 结束。有没有很好的通用方法来处理它?
这是说明问题的代码
$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???
}
})