当服务失败时,如何解析状态
How do i resolve state when service has been failed
感谢阅读此问题。我正在制作AngularJS应用程序。我做了一个状态和定义解析,调用User.getProfile,它在User服务中定义。因此,当服务成功获取配置文件时,此解析有效,但当服务失败时,该解析无效。让我发布一个代码。
.state('app.profile', {
url: '/profile',
views: {
'menuContent': {
templateUrl: 'views/pages/profile.html',
controller: 'ProfileCtrl',
}
},
resolve: {
data: function(User) {
return User.getProfile();
}
}
})
这是我定义的服务。
service.getProfile = function() {
var deferred = $q.defer();
HttpReq.sendRequest( RESTAPI.DEV_URL + RESTAPI.PROFILE,
'GET',
undefined,
function(result) {
/*
*/
if (result.success) {
deferred.resolve(result);
}
else {
deferred.reject(result);
}
},
function(error, response) {
deferred.reject(error);
//uiHelper.alert($scope, 'Login Error', response.message);
});
return deferred.promise;
};
在服务中调用deferr.resolve时解析app.profile。但在调用deferr.reject时未解决。如果我在承诺电话中有问题,请纠正我。
谢谢!
如果解析函数失败,您可能需要向用户显示相应的内容(如错误消息)。最好让解析函数返回promise(不返回)并使用内部事件$routeChangeError。
myApp.run(['$rootScope',function($rootScope) {
$rootScope.$on('$routeChangeError', function() {
// what you want to do if an error occurs
// ex: $rootScope.displayErrorMessage = true
});
}]);
相关文章:
- 当服务失败时,如何解析状态
- 在状态解析时在角度 ui 路由器中注入库
- AngularJS〔UI路由器〕urlRouteProvider.when()与路由到子状态的解析
- 错误:无法解析'api.movieDetails'从状态'api'
- 如何使用Angular UI Router解析所有状态的数据
- 在任何状态下解析UI路由器
- angularjs状态无法解析
- 如何单元测试输入和解析 UI 路由器状态
- 需要 / 角度 / 业力 / ui-router - 错误:无法从状态“”解析“登陆”
- Chrome:为什么 serviceWorker.ready 解析为处于“已安装”状态的服务工作者注册
- 从状态提供程序的解析方法更改角度应用程序的状态
- UI 路由器:是否可以解析子状态中的父承诺
- 如何在节点中解析 HTTP 状态代码
- 更新不同状态的 UI 路由器解析数据
- 如何在状态管理器视图控制器中传递已解析的依赖项
- AngularJS UI状态提供程序解析状态
- 使用angular js中的外部模块服务解析状态
- 无法解析状态“home.app.detail”;从state "home.apps.list"
- 无法在angularjs中解析状态
- 为什么ui路由无法从状态2解析状态1