angularjs Angular参数$routeParams和http.get params方法不起作用

ars1skjm  于 2023-11-16  发布在  Angular
关注(0)|答案(1)|浏览(122)

我正试图建立一个博客网站,只使用前端。我的博客数据是在一个API。我已经建立了博客提要,其中不同的博客列表显示使用AngularJS获取方法。但对于博客的详细视图,我需要从API一个单一的博客数据结果。
我已经尝试使用$routeParams选项。但它不起作用。我的博客API有id参数,返回特定博客ID的博客数据。
blogdetail.html(模板)

<div>
  <div><h1>Blog Details</h1></div>

  <div ng-repeat="xr in blog">
    {{xr.BLOGID}}
    
  <div>
</div>

字符串
blogController.js(控制器)

'use strict';
app.controller('blogController', ['$scope','$http', function ($scope, $http, $routeParams) {
    $http.get('http://example.com/api/blog/', {
        params: {id: $routeParams.id}
    })
       .then(function(res){
          $scope.blog = res.data;
        }).catch(function(response) {
        console.log("ERROR:", response);
    });
}]);


网站的博客详细信息部分的路线提供商:

$routeProvider
    .when("/Blog/:id", {
        controller : "blogController" ,
        templateUrl : "views/BlogDetail.html"
    })


这是我得到的错误:

TypeError: Cannot read property 'id' of undefined

kknvjkwl

kknvjkwl1#

你需要把数组中的所有参数都加到函数前面,这些参数是函数中需要的,否则它们就没有定义。
问题在这里['$scope','$http', function

'use strict';
    app.controller('blogController', ['$scope','$http', '$routeParams', function ($scope, $http, $routeParams) {
        $http.get('http://example.com/api/blog/', {
            params: {id: $routeParams.id}
        })
           .then(function(res){
              $scope.blog = res.data;
            }).catch(function(response) {
            console.log("ERROR:", response);
        });
    }]);

字符串

相关问题