当我在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';
}
}
});
答案 0 :(得分:0)
根据official docs ...
...
$routeParams
仅在路线更改成功完成后更新。这意味着您不能在路由解析功能中依赖$routeParams
正确。相反,您可以使用$route.current.params
来访问新路线的参数。
您应该使用$route
代替
console.log($route.current.params.id);