2016-05-03 8 views
0

Ich habe eine Login-Seite für die Authentifizierung erstellt. Basierend auf dem Ergebnis der Authentifizierung wird es auf verschiedene Seiten umgeleitet.

//controller.js

app.controller("LoginCtrl", ['$scope', '$location', 'loginFactory', function($scope, $location, loginFactory){ 
    $scope.authenticate = function() { 
     loginFactory.login($scope.username, $scope.password) 
     .then(function(response) { 
      $location.path('/home'); 
     }, function errorCallBack(response) { 
      console.log("Failed auth"); 
      $location.path('/login'); 
     }); 
    } 
}]); 

Die Anwendung in der folgenden config.js zusammen mit Routing definiert ist. //config.js

var app = angular.module('ristoreApp', ['ngRoute']); 
app.config(function ($routeProvider, $locationProvider, $httpProvider) { 
    $routeProvider 
     .when('/', { 
      redirectTo: '/home' 
     }) 
     .when('/login', { 
      templateUrl: 'views/login.html', 
      controller: 'LoginCtrl' 
     }) 
     .when('/home', { 
      templateUrl: 'views/home.html', 
     }) 
     .otherwise({ 
      redirectTo: '/login' 
     }); 
}); 

Die Struktur der Dateien:

root/ 
    js/ -- config.js 
     -- authentication/ -- controller.js 
    views/ -- home.html 
      -- login.html 

Wenn ich das Login-Formular einreichen, statt zu der Umleitung "http://127.0.0.1:8081/views/login", leitet es auf "http://127.0.0.1:8081/views/login#/login". Plus "http://127.0.0.1:8081/login" liefert 404.

I node.js unter root starten. Auf der Registerkarte "Netzwerk" in Chrome wird angezeigt, dass "config.js" geladen ist. Warum funktioniert das Routing nicht?

Antwort

2

Wenn Sie nicht das # Winkel Routing verwenden möchten, müssen Sie Html5 Modus aktivieren.

Wenn das nicht funktioniert, müssen Sie möglicherweise Ihre Basis auf den Seiten festlegen, indem Sie diese in den Kopfbereich setzen.

<base href="/"> 
+0

Ich habe '$ locationProvider.html5Mode (true); 'in config hinzugefügt und' 'in jeden html eingefügt. Nun wird auf "http://127.0.0.1:8081/home" umgeleitet, aber "views/home.html" wird nicht geladen. – ddd

+0

Wo ist Ihre app.js oder was auch immer Sie diese Datei oben genannt haben? Wenn es sich in einem Ordner befindet, müssen Sie die Vorlagen-URL ändern. Klingt wie Ihre Vorlage wird nicht korrekt geladen, da der Pfad falsch ist. – Dylan

+0

Die Datei ist config.js in js/Ordner. Siehe meine Ordnerstruktur im ursprünglichen Post. – ddd

Verwandte Themen