2016-12-01 2 views
0

Zu Beginn meiner app, ich habe:Warum wird mein Angular-Status nicht geladen?

$urlRouterProvider.otherwise('/loading'); 

die Kontrolle meiner loadCtrl bringt. Hier habe ich:

Service.getRoleDetails(config.USER_DETAILS_URL).then(useRoleDetails, handleApiError); 

     function useRoleDetails(response) { 
      if (response.id === 1) { 
       $state.go('home'); 
      } 
      else 
       $state.go('master'); 
     } 

     function handleApiError(error) { 
      Overlay.applyOverlay(false); 
     } 

Diese Service Call und Callback-Funktion funktioniert gut. Die if - Bedingungen werden erfüllt, aber irgendwie ändert sich der Status nicht zu home. Mein Bildschirm bleibt nur auf der Startseite hängen. (Das ist die Vorlage für `/ loading '.)

Ich habe noch nie ein solches Problem mit $state konfrontiert, mache ich etwas falsch ?? Obwohl ich keine Konsolenfehler habe

Jeder Vorschlag?

Mein config:

$stateProvider.state('preload', { 
      url: '/loading', 
      views: { 
       "main": { 
        controller: 'landingPageCtrl as lc', 
        templateUrl: 'PP/htmls/landing.tpl.html' 
       } 
      }, 
      data: { 
       pageTitle: 'PricingPlan' 
      } 
     }) 
     .state('home', { 
      url: '/pricingplan', 
      views: { 
       "main": { 
        controller: 'PPCtrl as pp', 
        templateUrl: 'PP/htmls/pricing-position.tpl.html' 
       } 
      }, 
      data: { 
       pageTitle: 'Pricing Plan' 
      } 
     }) 
     .state('master', { 
      url: '/master', 
      views: { 
       "main": { 
        controller: 'masterDataCtrl as mdc', 
        templateUrl: 'PP/htmls/MasterData/masterData.tpl.html' 
       } 
      }, 
      data: { 
       pageTitle: 'Master Data' 
      } 
     }) 
     .state('logout',{ 
      url: '/loggedOut', 
      views: { 
       "main": { 
        controller: 'logOutCtrl as lc', 
        templateUrl: 'PP/htmls/logout.tpl.html' 
       } 
      }, 
      data: { 
       pageTitle: 'Session Expired' 
      } 
     }); 


    } 
+0

Sind Sie sicher, dass, wenn (response.id === 1) richtig funktioniert? Wenn ja, können Sie versuchen, $ location.path ("yoRState") durch Injektion von $ location in Ihrem Controller –

+0

Ja..der if Bedingung wird wahr .. –

+0

dann etwas mit dem Zustand, der mit dem Aufruf oder der Deklaration arbeitet, warum wird es in den Ladezustand verschoben, wie Sie es als Standard in der Statuskonfiguration erwähnt haben .otherwise ('/ loading'); –

Antwort

0

ich tiefer gegraben und fand, dass alles mit kantiger und meiner obigen Implementierung OK war (in Frage). Ich hatte jedoch eine vorhandene Logik in meinem $stateChangeStart Ereignis-Listener. Der Staatswechsel wurde dort eingeschränkt.

Wer sich mit einem Problem dieser Art konfrontiert, sollte einen Blick in $stateChangeStart Listener haben.

Verwandte Themen