$ routeParams没有任何传递(角度/节点)

时间:2015-03-19 06:25:39

标签: angularjs node.js routing

我确信这个问题有一个简单的答案,但是,有一次,我很难过。我希望像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未定义。

0 个答案:

没有答案