我正在使用AngularJS 1.6.4
我的主页的网址是http://localhost:8080/AsumForum/
如果用户已成功注册到我的网站,我正在尝试显示成功消息。如果用户已注册,我会将其重定向到主页,我的网址如下所示:http://localhost:8080/AsumForum/?registered=true
。
问题是,$ location.search()永远不会发现registered = true。我已经尝试使$ locationProvider与HTML5兼容,但这也不起作用。
这是我的registration.js:
var app = angular.module('reg',[]);
app.controller('valid', ['$scope','$location','$http',
function($scope,$location,$http){
$scope.send = function(){
var date = new Date();
$scope.user.date=date.toString();
$http({
url: 'http://localhost:8080/AsumForum/webapi/users/register',
dataType: 'json',
method: 'POST',
data: $scope.user,
headers: {
"Content-Type": "application/json"
}
}).then(function success(response){
$scope.res = response.data;
$scope.satus = response.status;
console.log('RES: '+$scope.res+'\nSTATUS: '+$scope.status);
window.location="http://localhost:8080/AsumForum/?registered=true";
}, function error(response){
$scope.res = response.statusText;
console.log('Error: +'+$scope.res);
});
}
}]);
这是我的login.js
var app = angular.module('mainPage',[]);
app.controller('regsuc',['$scope','$location',function($scope,$location){
$scope.message = '';
var show = $location.search();
for(var i in show){
console.log(i);
}
if(show==true){
$scope.message="Successfull registered! You can now log in.";
}
}]);
日志不会返回任何内容。使用console.log(show)
返回[object Object]。
我是否真的必须使用路由来传递参数,还是可以像我尝试的那样完成?
注1:使用$location.url('http://localhost:8080/AsumForum/?registered=true);
重定向对我不起作用。
注2:使用location.search
代替$location.search
返回?registered = true。
答案 0 :(得分:3)
试试以下
您错过了$ location.search()
中的参数名称$location.search().registered