AngularJS UI router handling 404s

前端 未结 6 1597
粉色の甜心
粉色の甜心 2020-12-03 01:48

I have an app with a service which wraps my API calls:

var ConcernService = {
    ...
    get: function (items_url, objId) {
        var defer = $q.defer();
         


        
6条回答
  •  长情又很酷
    2020-12-03 02:48

    I differ between two 404 states:

    Server:

    • show 404 page depending on server response HTTP Code 404
    • important to define no URL, so that user stays on URL where the error happened

    Client:

    • URL is not found by angular ui router (none of defined URLs)

    Code for Angular UI-Router state:

    $stateProvider
      .state('404server', {
        templateUrl: '/views/layouts/404.html'
      })
      .state('404client', {
        url: '*path',
        templateUrl: '/views/layouts/404.html'
      });
    

    Code in $httpProvider interceptor:

    if(response.status === 404) {
      $injector.get('$state').go('404server');
    }
    

    And why I used $injector instead of $state is explained here.

提交回复
热议问题