URL路径显示未定义 - 在AngularJS中的$ location上重定向后出现问题

时间:2017-04-24 05:30:53

标签: angularjs

我在这里使用AngularJS处理登录应用程序。验证后,当我尝试使用$ location重定向到主页时,首先该网址将更改为' / home'但突然之间路径发生变化并显示出“未定义”。以下是我的代码:

var app = angular.module('app', ['ngRoute', 'ngCookies']);

var currentURL = location.protocol+'//'+location.hostname+':'+location.port;

app.constant("customConstants", {"value": "false","url": currentURL});

app.config(function($routeProvider) {
    $routeProvider
    .when('/', {
        templateUrl : 'usrlib/html/login.html',
        controller : 'loginController'
    })
    .when('/login', {
        templateUrl : 'usrlib/html/login.html',
        controller : 'loginController'
    })
    .when('/home', {
        templateUrl : 'usrlib/html/home.html',
        controller : 'homeController'
    })
    .otherwise({
        redirectTo: '/'
    });
});

app.controller('loginController', function($rootScope, $scope, $http, $route, $location, customConstants) {
    console.log("Inside loginController");

    $scope.authenticate = function () {
        var userdetails = {};
             userdetails["username"]=angular.element('#username').val();
             userdetails["password"]=angular.element('#password').val();
            var config_json = {
                headers : {
                    'Content-Type': 'application/json'
                }
            }
            $http.post(customConstants.url+"/login",userdetails, config_json)
                .then(function successCallback(response) {
                console.log(JSON.stringify(response.data, null, "\t"));
                var resp = response.data;

                if(resp=="success"){
                    alert("Success login")
                    $location.path('/home');

                }
                else{
                    console.log("Login Failed");
                }
             }, function errorCallback(response) {
                console.log(response.error);
            });
     };

});

app.controller('homeController', function(customConstants, $scope, $http) {
    alert("Inside homeController");

    $http.get(customConstants.url+"/home")
        .then(function successCallback(response) {
            console.log("overall_info :: "+JSON.stringify(response.data, "\t"));

     }, function errorCallback(response) {

     });
});

在浏览器中显示:

enter image description here

无法找到问题,请提供帮助。

2 个答案:

答案 0 :(得分:1)

你不需要。

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

尝试

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

答案 1 :(得分:0)

尝试从函数定义中删除 $ location 参数。因为除非你调用该函数,否则有可能显示未定义的,