Variables AngularJS:从控制器内读取路由参数

Variables AngularJS:从控制器内读取路由参数,variables,angularjs,controller,routes,url-parameters,Variables,Angularjs,Controller,Routes,Url Parameters,如何在AngularJS控制器中读取URL中的参数 假设我有一个像http://localhost/var/:value我希望该值存储在控制器中/var/:valueURL的变量中 我尝试过使用$routeParams.value和$route.current.params.value,但是$routeParams在开始时未定义,并且$route不起作用。问题是您可能在路由更改之前运行的控制器中注入$routeParams发生,例如主/母版/页控制器 如果在控制器中为特定路由(定义路由时由控制器

如何在AngularJS控制器中读取URL中的参数

假设我有一个像
http://localhost/var/:value
我希望该值存储在控制器中
/var/:value
URL的变量中


我尝试过使用
$routeParams.value
$route.current.params.value
,但是
$routeParams
在开始时未定义,并且
$route
不起作用。

问题是您可能在路由更改之前运行的控制器中注入
$routeParams
发生,例如主/母版/页控制器

如果在控制器中为特定路由(定义路由时由
控制器
属性指定)注入
$routeParams
,则它将起作用,否则您可能会更好地收听路由服务广播的各种事件

尝试更改要使用的代码

$scope.$on('$routeChangeSuccess', function (ev, current, prev) {
   // ... 
});

要求:确保“ngRoute”在应用程序模块中

Route provider set up as: http://localhost/var/:valName
功能设置为:

function functionName($scope, $routeParams){$scope.value = $routeParams.valName;}
HTML视图:

{{value['valName']}}

您所说的“$routeParams在开始时未定义,$route不起作用”是什么意思?你能在你想让它们工作的地方分享代码吗?$route.current和$routeParams都应该在控制器提供程序中给出正确的结果,您已经设置了路由并将依赖项注入控制器。您完全正确,控制器在发生路由更改之前运行,因为客户端在连接时直接调用URL。但是你发布的代码不起作用,因为没有改变路线。还有其他解决这个问题的建议吗?如果您的客户端直接点击url,而您没有让AngularJS处理路由,那么您将无法使用
$routeParams
<代码>$routeParams仅在使用
$routeProvider时有效。当(/movies/:genre,{…})
时,否则必须手动提取值。问:您是在使用AngularJS路由还是只是在寻找从url中提取值的方法?我使用AngularJS路由是因为我想在我的
ng视图中加载不同的
模板url
(angular express种子)。但是感谢您的回答,似乎我需要用不同的方法来解决我的问题。有相同的问题,我尝试引用$route.current.controller,并且在填充实际ng视图路由之前,它在“母版”页上的控制器中未定义。谢谢你的解释!