2017-02-13 5 views
0

ich meinen Zustand Konfigurationen wie unten definiert haben:

$stateProvider 
     .state('parentState', { 
     abstract: true, 
     url: '/:tenantId/', 
     param: { 
      tenantId: { 
      array: false 
      } 
     }, 
     views: { 
      '[email protected]': { 
      templateUrl: 'home/header.html', 
      controller: 'Header as vm' 
      }, 
      '[email protected]': { 
      templateUrl: 'home/footer.html', 
      controller: 'FooterCtrl as vm' 
      } 
     }, 
     resolve: userResolve, 
     data: { 
      private: true 
     } 
     }) 
     //...4-5 other child states, then a state to handle unknown urls 
     .state('parentState.otherwise', { 
     views: { 
      '@': { 
      templateUrl: 'home/404/pageNotFound.html', 
      controller: 'PageNotFoundCtrl as vm' 
      } 
     } 
     }); 
    $urlRouterProvider.otherwise(function ($injector) { 
     $injector.get('$state').go('parentState.otherwise', {}, { 
     location: false 
     }); 
    }); 

Nun, wenn eine ungültige URL eingegeben wird, parentState.otherwise Zustand korrekt geladen und parentState param, dh tenantId , ist auch richtig gefüllt. Allerdings beim Laden der Seite (aktualisieren, Strg + R) mit derselben ungültigen URL, parentState.otherwise State lädt, aber das Problem ist parentState param, d. H. MieterID kommt als leere Zeichenfolge ("").

+0

Anmerkung: 'param:' sollte 'params sein:' –

+0

versucht, aber didn‘ t nichts ändern. Verhalten war gleich. – Avinash

Antwort

0

Irgendwie, mit location: false, der übergeordnete Zustand, d. H. parentState in diesem Fall nicht tenantId Param von der URL auf Seitenaktualisierung abholen. Also, wenn wir ausdrücklich tenantId param Kind Zustand übergehen, das heißt parentState.otherwise beim Öffnen, funktioniert alles perfekt auch auf Aktualisierung der Seite:

$urlRouterProvider.otherwise(function ($injector) { 
    $injector.get('$state').go('parentState.otherwise', { 
    tenantId: 'someTenantId' 
    }, { 
    location: false 
    }); 
}); 
Verwandte Themen