无法从$ routeParams.id获取ID

时间:2018-03-30 00:05:38

标签: angularjs

当我在console.log $ routeParams时,我得到一个包含id的对象,但是当我通过执行$ routeParams.id来解决id键时 - 我得到了undefined。我找到了一些相关的答案 - 但由于某种原因,似乎没有任何作用......

这是i console.log id

的组件
var app = angular.module('blogList').component('blogList', {
    template: '<div>' + '{{title}}' +
                  '<button ng-click="someFunc()">Click</button>' +
                  '<ul ng-if="items.length > 0">' +
                      '<li ng-repeat="item in items"><a ng-href="{{item.id}}">  {{ item.title }} < /a></li > '+
                  '</ul>' +
              '</div>',
    controller: function($routeParams, $scope) {
        console.log($routeParams.id); // Undefiend
        var blogItems = [
            { title: "home", id: 1, link: "home" },
            { title: "about", id: 2, link: "about" },
            { title: "contact", id: 3, link: "contact" }
        ];
        $scope.items = blogItems;
        $scope.title = 'Clicked ';
        $scope.clicks = 0;
        $scope.someFunc = function() {
            $scope.clicks += 1;
            $scope.title = 'Clicked ' + $scope.clicks + 'times';
        }
    }
});

Plunker

1 个答案:

答案 0 :(得分:0)

根据official docs ...

  

... $routeParams仅在路线更改成功完成后更新。这意味着您不能在路由解析功能中依赖$routeParams正确。相反,您可以使用$route.current.params来访问新路线的参数。

您应该使用$route代替

console.log($route.current.params.id);