2017-05-05 2 views
0

In app.js gibt es eine Menge Dinge. Aber releavant Teile sind:Angular App Route umleiten nach Hause

.config(function ($stateProvider, $urlRouterProvider, $locationProvider) { 
    $stateProvider 
     .state('home.notfound, { 
      url: '/notfound, 
      templateUrl: 'modules/main/views/404.html' 
     }) 
     .state('home.unauthorized', { 
      url: '/unauth', 
      templateUrl: '/unauthorized' 
     }); 
    $urlRouterProvider.otherwise('/home/main'); 

.run(function ($rootScope, localize, CookieService, $location) { 

$rootScope.$on('$stateChangeStart', function(scope, next) { 
    var userCookie = CookieService.getCookie(Config.loginCookie, true); 
    if(next.loginRequired){ 
    if(!userCookie){ 
     // Logout user without cookie 
     $location.path('/login'); 
    } 
    } 
    else{ 
     return; 
    } 

Routen werden definiert in Dateien wie: name.route.js

eine Route namens unit.route.js enthält:

define([],function(){ 
function routeConfiger($stateProvider){ 
    $stateProvider 
    .state('home.unit', { 
     url: '/units', 
     templateUrl: 'unit.html', 
     controller: 'unitCtrl', 
     controllerAs: 'unit', 
     loginRequired:true 
    }); 
} 
routeConfiger.$inject=['$stateProvider']; 
return routeConfiger; 
});  

Eine Route namens Fall. route.js enthält:

define([],function(){ 
function routeConfiger($stateProvider){ 
    $stateProvider 
    .state('home.viewCase', { 
     url: '/viewcase/:caseId', 
     templateUrl: 'case-view.html', 
     controller: 'caseViewCtrl', 
     controllerAs: 'caseView', 
     loginRequired:true 
    }) 

Nun, wenn ich einen Browser öffnen und geben

http://localhost/home/units/ 

dann sehe ich die Seite unit.html.

Wenn ich jedoch

http://localhost/home/viewcase/50/ 

irgendwo geben, nimmt eine Umleitung über und leiten Sie die Seite

http://localhost/home/main 

Wenn von Haupt-Seite, ich auf einen Link klicken, die einen ng-Klick hat wie folgt aus:

$state.go("home.viewCase", { caseId: '50' }); 

Dann wird eine „lokale“ Umleitung erfolgt und die Seite geht an

case-view.html 

Ich bin nicht in der Lage zu verstehen, was nicht mehr direkt zum Viewcase geht: ID.

Warum funktioniert es für die Route "Einheiten", aber nicht für die Route "Fall"?

+0

mmm hast du kein abstraktes: echtes Routing für .home? –

+0

Nein. Ich konnte im Projekt keinen Hinweis auf "Abstrakt" finden. – oderfla

+0

mmm sieht wirklich komisch aus ... was ist, wenn Sie versuchen, in den app.js Dateien etwas hinzuzufügen wie: $ stateProvider .state ('home, { url:'/home, Zusammenfassung: true, templateUrl: 'Module/main/views/common.html ' }) –

Antwort

0

Ok Ich habe herausgefunden, was das Problem war. hat es tatsächlich funktioniert. Aber nicht lokal. Lokal benutze ich grunzen. Und aus irgendeinem Grund hat die Weiterleitung nicht funktioniert. Aber auf anderen Servern, auf denen angular von nginx bedient wird, funktioniert der direkte Zugriff auf eine bestimmte Route.

Verwandte Themen