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

cti*_*tze 12 variables controller routes url-parameters angularjs

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

假设我有一个类似的URL http://localhost/var/:value,我希望将值存储在/var/:valueURL 的控制器中的变量中.

我已经尝试使用$routeParams.value$route.current.params.value,但$routeParams在开始时是不确定和$route不工作.

Mar*_*tin 15

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

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

尝试更改要使用的代码

$scope.$on('$routeChangeSuccess', function (ev, current, prev) {
   // ... 
});
Run Code Online (Sandbox Code Playgroud)

  • 如果你的客户直接点击url而你没有让AngularJS处理路由,那么你将无法使用`$ routeParams`.`$ routeParams`仅在您使用`$ routeProvider.when(/ movies /:genre,{...})`时才有效,否则您必须手动提取值.问题:您使用的是AngularJS路由还是仅仅是在寻找从URL中提取值的方法? (3认同)