处理ui-router中的$ q错误

时间:2015-05-12 13:40:57

标签: angularjs angular-ui-router

我使用UI-Router使用$q.all解析2个承诺。如果任何一个promises返回错误,我该如何处理错误?根据错误的类型,我想返回一个错误模板。

.state('main', {
    // ...
    resolve: {
       config: function(Service1, Service2, $q) {
          return $q.all({
            example1Data: Service1.get().$promise,
            example2Data: Service2.get().$promise
          });
        }
    }
}

1 个答案:

答案 0 :(得分:0)

您可以做的是收听错误事件$stateChangeError并将状态重定向到错误页面。这个:

angular.module('yourapp').run(function($rootScope, $state) {
    $rootScope.$on('$stateChangeError', function() {
      // Redirect user to your error page
      $state.go('root.error');
    });
  });