我一直试图在Angular中获取url参数,但这不是单页应用程序。我尝试了以下代码片段。
www.example.com?param1=ABC
先将$location
注入控制器,然后
var paramValue= $location.search().param1;
在上述情况下,paramValue未定义。但是,如果我将网址更改为
www.example.com#?param1=ABC
(在URL中添加#)有效。
但是,我不想这样做,因为它不是SPA,因为它会破坏页面。
有人可以建议一种更好的方法来获取url参数,而不在url中使用#吗?
答案 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