AngularJS $ location.search()不返回任何内容

时间:2017-08-15 19:12:05

标签: javascript angularjs

我正在使用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。

1 个答案:

答案 0 :(得分:3)

试试以下

您错过了$ location.search()

中的参数名称
$location.search().registered