如何在AngularJS控制器中读取URL中的参数?
假设我有一个类似http://localhost/var/:value
的网址,我希望将值存储在/var/:value
网址控制器的变量中。
我已尝试使用$routeParams.value
和$route.current.params.value
,但$routeParams
在开头未定义且$route
不起作用。
答案 0 :(得分:15)
问题是您可能会在路由更改发生之前运行的控制器中注入$routeParams
或$route
,例如:你的主/主/页面控制器。
如果在控制器中为特定路由注入$routeParams
(在定义路由时由controller
属性指定),那么它将起作用,否则您可能最好听一下路线服务广播的各种活动。
尝试更改您的代码以使用
$scope.$on('$routeChangeSuccess', function (ev, current, prev) {
// ...
});
答案 1 :(得分:3)
要求:确保“ngRoute”在您的应用模块中
Route provider set up as: http://localhost/var/:valName
功能设置为:
function functionName($scope, $routeParams){$scope.value = $routeParams.valName;}
HTML视图:
{{value['valName']}}