我确信这个问题有一个简单的答案,但是,有一次,我很难过。我希望像http://www.website.com/item/1234这样的网址显示有关ID为“1234”的项目的信息。我有一个Angular控制器设置来查询它并呈现它的数据。如果id有效,则此方法有效。但是,我首先无法弄清楚如何传递id。我尝试过很多路由示例,但是当我尝试实现它们时,它们都没有用,所以我错过了一些东西。
以下是Express / Node中的服务器路由:
router.get('/item/:id', function(req, res, next) {
res.render('item');
});
这是Angular路线:
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/item/:id', {
controller: 'ShowItem'
});
$locationProvider.html5Mode(true);
}]);
控制器正在尝试访问“id”:
app.controller('ShowItem', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) {
console.log($routeParams.id);
var itemID = $routeParams.id;
$http({
method: 'GET',
url: '/queries/get_item',
params: {
itemID: itemID
}
}).success(function(data, status, headers, config) {
if (data) {
$scope.itemValue = data;
$scope.type = $scope.itemValue['SaleType'];
$scope.setAllBidHistory(false);
if (Date.getStamp() >= $scope.itemValue['ExpirationTimeStamp']) {
$scope.expired = true;
} else {
$scope.expired = false;
}
}
}).error(function(data, status, headers, config) {
alert('There was an error fetching item: '+status);
});
...
}]);
页面呈现,但$ routeParams.id未定义。