将路由参数传递给控制器

时间:2014-10-23 13:38:21

标签: javascript angularjs

现在我已经有了使用dataService提供产品数据的productsController

myApp.controller("productsController", function ($scope, $http, dataService) {
    $scope.productsData = dataService;    

    dataService.getProducts()
    .then(function () {
        //success

    },
    function () {
        // error
        alert("could not load products");
    });
});

这很好用,产品在我的视图上正确呈现。 现在我想打开产品点击的产品详细信息 所以我添加

<tr ng-repeat="product in productsData.products">
    <td>{{ product.Name }}</td>           
    <td>
        <a ng-href="{{ product.Id }}">
            <img ng-src="{{ product.thumbnail }}" width="50" height="50" />
        </a>
    </td>
</tr>  

我添加了相应的路线

myApp.config(function ($routeProvider) {
    ...
    .when("/product/:id", {
        controller: "productsController",
        templateUrl: "/templates/productDetailsView.html"
    })
    ...
}

我的问题是: 如何将此id参数传递给productsController ,以便我可以将其进一步传递给我的数据服务 这将返回数据。

1 个答案:

答案 0 :(得分:4)

$routeParams注入您的控制器。

myApp.controller("productsController", ['$routeParams', function ($routeParams) {
    console.log($routeParams.id);         
}]);