2016-07-26 13 views
0

Das Szenario ist ziemlich einfach Ich habe eine lokale Website, die Winkel verwendet. Ich habe mir von unserem staatsprovider usu router lib eingerichtet.Angularjs UI-Router 404 nicht bewerten

Wenn ich http://localhost.com/#/lwejfpwef eintippe, wird es mich richtig zu meiner anderen weisen Klausel in den Zustand '/ login' umleiten.

Allerdings habe ich versucht, in http://localhost.com/lwjpoifwef eingeben es löst keine der Ereignisse, die ich in meinem Modul Config haben. Ich habe versucht,

  • $ stateChangeSuccess
  • $ stateChangeStart
  • $ stateChangeError
  • $ httpinterceptors

Ich bin mir nicht sicher, was ich falsch mache. Es scheint keinen der Breakpoints zu treffen, die ich dort hineinlege. Hier ist ein Ausschnitt von dem, was ich habe

angular.module('app').run(['$rootScope', '$state', 'service', function ($rootScope, $state, service) { 
    $rootScope.$on('$stateChangeSuccess', function (evt, to, params) { 
     alert('success'); 
    }); 

    $rootScope.$on('$stateChangeStart', function (event, to, params) { 
     alert('start'); 
    }); 
    $rootScope.$on('$stateChangeError', function (evt, toState, toParams, fromState, fromParams, error) { 
     $state.go('login'); 
    }); 

}]); 

angular.module('dealer-portal.core').config(CoreConfig); 

function CoreConfig($stateProvider, $urlRouterProvider, $httpProvider) { 
    $stateProvider 
     .state('login', { 
      url: '/login', 
      templateUrl: 'wwwroot/app/login/login.html', 
      data: { 
       displayName: 'Login' 
      } 
     }) 
     .state('home', { 
      url: '/home', 
      templateUrl: 'wwwroot/app/login/login.html', 
      data: { 
       displayName: 'Home' 
      } 
     }) 
     .state('error', { 
      url: '/login' 
     }); 

    $urlRouterProvider.otherwise('/login'); 
} 
+0

können Sie ro verwenden "otherwis e "auf $ stateProvider –

+0

Ich habe das auch tatsächlich probiert und keine Würfel. Es geht einfach gerade vorbei. –

Antwort

0

$ state.go den Zustand Namen haben sollte und nicht die übergebene URL in

$state.go('login'); 

und NICHT

$state.go('/login'); 

Auch Sie müssen $stateParams in Ihre Lauffunktion injizieren

+0

Inject $ stateparams wo? Wenn du über den stateChangeError sprichst, trifft er dieses Ereignis nie, also wahrscheinlich, warum ich das extra nicht/in der .go gesehen habe. –

+0

Sie müssen das in Ihrer Ausführungsfunktion injecting.module ('app') einfügen run (['$ rootScope', '$ state', '$ stateParams', 'service', Funktion ($ rootScope, $ state, $ stateParams, service) { –

+0

Das hat nicht wirklich etwas getan, da ich nie $ stateparam benutzt habe, und der Parameter kam von den State Events nicht von der Run Definition. –