我有以下网址:
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;
});
}]);
在控制台中显示:
Cannot read property 'params' of undefined
谁能告诉我我做错了什么?
编辑:
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);
});
最佳答案
将 console.log($routeParams);
放入 Controller 中并检查其值。
如果是Object {}
,请检查您是否有使用参数的路由定义:
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 - 使用$route获取URL参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426884/