所以例如我可能有一个描述的阶段:
.state('room', {
url: "/room/:id",
templateUrl: "app/views/room.html",
controller: 'roomsCtrl'
})
然后定义一个控制器:
angular.module('app')
.controller('roomsCtrl', ['$scope','Room', function ($scope,Room) {
$scope.rooms = Room.get({id: 1}, function(item) {
});
console.log($scope);
}]);
在这个例子中,Room是一个连接到restful api的服务对象。我想测试控制器中是否存在id,并将其传递给id参数" Room.get({id:1}"如果存在,否则不传递任何内容。
如何检索url中存在的参数id?
在我的情况下,它显示为:/#/ room / 1
以下是我视图中某些html的示例,其中的链接将键入id:
<a ui-sref="room({ id: '1' })">
{{room.name}}
</a>
答案 0 :(得分:2)
如果您使用的是$stateProvider
$stateParams
是一个角度服务,允许您检索当前的状态参数集。
angular.module('app')
.controller('roomsCtrl', ['$scope','Room','$stateParams' function ($scope,Room, $stateParams) {
var id = $stateParams.id;
:
}]);
如果您使用 $routeProvider ,请使用 $routeParams
同时尝试
var id = $routeParams.id;