Angular Параметр $ routeParams и метод http.get params не работали - PullRequest
0 голосов
/ 20 февраля 2020

Я пытаюсь создать блог-сайт, используя только внешний интерфейс. Данные моего блога находятся в API. Я уже построил фиды блогов, где список разных блогов отображается с использованием метода angularjs get. Но для детального просмотра блога мне нужно, чтобы данные блога были получены из API. Я уже пробовал использовать параметр $ routeParams. Но это не сработало. API моего блога имеет параметр id, который возвращает данные блога специфицированного c blogid. Пожалуйста, помогите мне решить эту проблему.

blogdetail. html (шаблон)

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

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

  <div>
</div>

blogController. js (Controller)

'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: Невозможно прочитать свойство 'id' из неопределенного

1 Ответ

1 голос
/ 20 февраля 2020

вам нужно добавить все параметры в массиве перед функцией, которые необходимы в функции, иначе они не определены.

проблема здесь ['$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);
        });
    }]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...