Javascript 使用$route获取URL参数

Javascript 使用$route获取URL参数,javascript,angularjs,Javascript,Angularjs,我有以下网址: http://myurl.dev/users/32 我想将最后一个参数32传递给$http.get请求,但我不知道如何传递它 到目前为止,我有: var matchmaker = angular.module('matchmaker', ['ngRoute'], function($interpolateProvider) { $interpolateProvider.startSymbol('[['); $interpolateProvider.endSymb

我有以下网址:

http://myurl.dev/users/32
我想将最后一个参数
32
传递给
$http.get请求
,但我不知道如何传递它

到目前为止,我有:

var matchmaker = angular.module('matchmaker', ['ngRoute'], function($interpolateProvider) {
    $interpolateProvider.startSymbol('[[');
    $interpolateProvider.endSymbol(']]');
})
.controller('LocationCtrl', ['$scope', '$http', '$location', '$routeParams', '$route', function($scope, $http, $location, $routeParams, $route) {

    var id = $route.current.params.id;

    console.log(id);

    $http.get('http://myurl.dev/services/' + id ).success(function(data) 
    {
        $scope.applicants = data;
    });

}]);
在控制台中,它说:

无法读取未定义的属性“params”

谁能告诉我我做错了什么吗

编辑:

Angular没有生成url,它是服务器端生成的url

编辑2.0

以下是routeProvider的配置和实际路由参数:

var matchmaker = angular.module('matchmaker', ['ngRoute'], function($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
})
.config(function($routeProvider, $locationProvider) {
  $routeProvider.when('/matchmaker/locations/:id', {
    controller: 'LocationCtrl'
  });
  $locationProvider.html5Mode(true);
});
var module = angular.module('ngRouteExample', ['ngRoute']);

module.config(function($routeProvider, $locationProvider) {
  $routeProvider.when('/test/:id', {
    templateUrl: 'test.html',
    controller: 'TestController'
  });

  // configure html5 to get links working on jsfiddle
  $locationProvider.html5Mode(true);
});
放置
console.log($routeParams)并检查其值

如果是
Object{}
请检查是否有使用参数的路由定义:

var matchmaker = angular.module('matchmaker', ['ngRoute'], function($interpolateProvider) {
$interpolateProvider.startSymbol('[[');
$interpolateProvider.endSymbol(']]');
})
.config(function($routeProvider, $locationProvider) {
  $routeProvider.when('/matchmaker/locations/:id', {
    controller: 'LocationCtrl'
  });
  $locationProvider.html5Mode(true);
});
var module = angular.module('ngRouteExample', ['ngRoute']);

module.config(function($routeProvider, $locationProvider) {
  $routeProvider.when('/test/:id', {
    templateUrl: 'test.html',
    controller: 'TestController'
  });

  // configure html5 to get links working on jsfiddle
  $locationProvider.html5Mode(true);
});
如果是,您将在控制台中获得以下输出:

Object {id: "42"} 

这是因为您试图获取当时不存在的值,这就是javascript的工作方式。您需要使用“”事件指定在这些值准备就绪时需要这些值


您可以使用
$routeParams.id
来实现此目的。请检查:您的$RouteParam和RouteParam之间存在巨大差距。我尝试了此方法,但我仍然在控制台中获得对象{}。我应该说(虽然不确定这是否重要)Angular没有生成url,它是服务器端生成的url。这有区别吗?正如你所知道的,我是一个完全有棱角的傻瓜!那不要紧。也许可以在问题中添加你的路由定义。我已经用我的路由定义(我认为你的意思)更新了我的原始帖子。我没有看到明显的错误。您可以创建一个Plunker来演示它。