如何在angularjs中获取url参数?

时间:2018-06-22 07:20:17

标签: javascript angularjs

我一直试图在Angular中获取url参数,但这不是单页应用程序。我尝试了以下代码片段。

www.example.com?param1=ABC

先将$location注入控制器,然后

var paramValue= $location.search().param1;

在上述情况下,paramValue未定义。但是,如果我将网址更改为

www.example.com#?param1=ABC(在URL中添加#)有效。

但是,我不想这样做,因为它不是SPA,因为它会破坏页面。

有人可以建议一种更好的方法来获取url参数,而不在url中使用#吗?

4 个答案:

答案 0 :(得分:0)

尝试一下。

$stateParams注入到控制器

var paramValue=$stateParams.param1

这将在您的情况下起作用

答案 1 :(得分:0)

如果您不使用stateParams,请使用它:

this.$routerOnActivate = function(next) {
    $scope.paramValue= next.params.param1;
};

答案 2 :(得分:0)

  

首先启用html5模式:

在路由器中添加以下代码:

app.config(["$locationProvider", function($locationProvider) {   
           $locationProvider.html5Mode(true); 
}]);
  

第二,然后更新index.html

<head>
    ...
    <base href="/">
</head>
  

最后,将$ stateParams注入到contoller中并使用   正在关注

var paramValue=$stateParams.param1

答案 3 :(得分:0)

使用$routeParams

在$ routeProvider中的AngularJs中

.when('/sample/:id',
  {
     templateUrl: 'sample.html',
     controller: 'sampleController'
  })

在您的控制器中,使用$routeParams.id