0

所以我试图从帖子列表中获取单个“帖子”对象,但我不知道传递的参数对象名称的名称。这是后详细信息组件“使用严格”;

angular.module('postDetail', ['ngRoute', 'postsService'])

.config(['$routeProvider', function($routeProvider) {
  $routeProvider.when('/posts/:postId', {
    templateUrl: 'post-detail/post-detail.template.html',
    controller: 'PostDetailController'
  });
}])

.controller('PostDetailController', ['$scope', '$http', 'postsService', '$routeParams', function($scope, $http, postsService, $routeParams) {
    $scope.post = postsService.getPost($routeParams.postId);
}]);

在这里,我将 postId 传递给 getPost 方法。顺便说一句,这里 postId 的值是有效的。

这是我的帖子服务。

angular.
  module('postsService', ['ngResource']).
  factory('postsService', ['$resource',
    function($resource) {
      return $resource('https://jsonplaceholder.typicode.com/posts/:postId', {}, {
        getPost: {
          method: 'GET',
          params: {postId: '@postId'}
        }
      });
    }
  ]);

但是这里的“@postId”表达式是空的,它试图获取帖子列表。如何引用传递的参数?

我的帖子详细信息模板

<h3>{{post.title}}</h3>
<p>{{post.body}}</p>
4

1 回答 1

1

代替:

$scope.post = postsService.getPost($routeParams.postId);

做:

$scope.post = postsService.getPost({
    postId: $routeParams.postId
});

查看文档中如何使用$resource类方法的示例。

于 2018-06-25T05:48:48.170 回答