angularjs $ location.search返回空对象

时间:2017-07-31 13:32:27

标签: javascript angularjs query-string

我想使用$location这样的example来提取我的网址查询字符串。 我的网址 - http://someDomain.com/create/index.jsp?queryToken=123abc

并在我的指令中:

vm.queryParam = $location.search();
$log.log('vm.queryParam', vm.queryParam); //{}
vm.details.query = vm.queryParam.queryToken;
$log.log('vm.queryToken', vm.details.query); //undefined

我可以在记录$location时看到param或params,但在search()不起作用时提取它们的正确方法是什么?

感谢。

2 个答案:

答案 0 :(得分:3)

我已经使用了它并且它有效,请尝试使用此



var app = angular.module('myApp', []);
app.config(['$locationProvider', function($locationProvider){
$locationProvider.html5Mode({
  enabled: true,
  requireBase: false
  })
}])
 app.controller('myCtrl', function($scope, $location) {
 $scope.myPeram = "pass some value in url ?myParam=123";
		var query = $location.search();
    if(query.myParam)
    $scope.myPeram = query.myParam;
    
});

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.20/angular.min.js"></script>

</script>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
<span ng-bind="myPeram"></span>


</div>
</body>
</html>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$ location.search()仅适用于打开HTML5模式。
在您定义路线的地方添加以下行:

$locationProvider.html5Mode(true);

这始终有效:

$window.location.search