我在这里使用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) {
});
});
在浏览器中显示:
无法找到问题,请提供帮助。
答案 0 :(得分:1)
你不需要。
$location.path('/home'); // Wrong
尝试
$location.path('home'); // ryt
答案 1 :(得分:0)
尝试从函数定义中删除 $ location 参数。因为除非你调用该函数,否则有可能显示未定义的,