2017-02-17 94 views
0

我想在事件後重定向到另一個路由,但它只顯示URL更改(http://localhost:8000/login更改爲http://localhost:8000/login#/home)。我想將其更改爲http://localhost:8000/home#,但我無法弄清楚如何做到這一點。而我的路線這個網址無法正常工作。AngularJs重定向到路由不正常

app.js

var app = angular.module('laravel', ['ngRoute']) 
     .constant('API_URL', 'http://localhost:8000/') 
     .config(function ($routeProvider, $locationProvider) { 

      $routeProvider 
      .when('/login', { 

       controller: 'authController', 
       templateUrl: 'resources/views/auth/login.blade.php', 
      }) 
      .when('/home', { 

       templateUrl : "resources/views/home.bade.php", 
       controller : 'homeController' 
      }) 
      .otherwise({ 
       redirectTo: '/', 
      }); 
     }); 

auth.js,包含我authController

app.controller('authController', function ($scope, $http, $location, API_URL){ 

    $scope.login = function(){ 

     var url = API_URL + "login"; 

     $http.post(url, $scope.file).success(function (response) { 
     console.log("coming in homepage!!"); 
      // sessionStorage.setItem('user', $scope.user); 
      $location.path('/home'); 
     }); 
    } 
}); 

上面的代碼只是http://localhost:8000/login將URL轉換到http://localhost:8000/login#/home

回答

0

我明白了。 如果您將$ location配置爲使用html5Mode(history.pushState),則需要使用標記指定應用程序的基本URL,或者將$ locationProvider配置爲不需要基本標記,方法是將定義對象與requireBase:false一起傳遞給$ locationProvider.html5Mode():

$locationProvider.html5Mode({ enabled: true, requireBase: false}); 
//$locationProvider.html5Mode(true); //if we want to remove html5mode requirebase. 
0

都需要這樣的我猜

$location.path('/home').replace(); 

東西,你可以檢查API doc爲$位置。

+0

感謝您的回覆,但我已經嘗試過,結果相同。 –