在角度(离子)上的wp rest api中获取帖子绑定到id

Posted

技术标签:

【中文标题】在角度(离子)上的wp rest api中获取帖子绑定到id【英文标题】:get post bind to id in wp rest api on angular(ionic) 【发布时间】:2017-05-22 09:12:41 【问题描述】:

我正在尝试使用 ionic(angular) 应用程序中的 wp-rest-api v2 从 wordpress 站点加载每个帖子,然后将此列表中的每个帖子链接到所需的帖子和页面,问题是未显示帖子 ID,因此,如果我将鼠标悬停在 posts.html 中的任何帖子上,我只会看到指向 #/app/posts/ 的链接,而不是例如 #/app/posts/4821(它是示例帖子的 id)

// in App.js I have the route for this pages 

  .state('app.posts', 
    url: '/posts',
    data :  auth : true ,
    cache : false,
    views: 
      'menuContent': 
        templateUrl: 'templates/posts.html',
        controller : 'PostsCtrl'
      
    
  )
  .state('app.postDetails', 
    url: "/postDetail/:postId",
    views: 
      'menuContent': 
        templateUrl: 'templates/postDetail.html',
        controller : 'postDetailCtrl'
      
    
  )


  //in controller.js I have the PostsCtrl 
  .controller('postDetailCtrl', function($scope, $http, $stateParams, $sce) 
    $http.get('http://example.com/wp-json/wp/v2/posts/' + $stateParams.postId).then(
      function(returnedData)
        $scope.postDetails = returnedData.data;
        console.log($scope.postDetails);
        $scope.post_title = $sce.trustAsHtml($scope.postDetails.title.rendered);
        $scope.post_content = $sce.trustAsHtml($scope.postDetails.content.rendered);

      , function(err)
        console.log(err);
      )

)
<!--This will load all the posts in posts.html template -->
<ion-item class="item item-avatar item-text-wrap" ng-repeat="recentPost in recentPosts | filter: searchText" href="#/app/posts/post.ID">      
 </ion-item>



<!-- this is the postDetails.html, template for each post--> 
   <div class="item item-avatar">
     <div class="text-right item-text-wrap" ng-bind-html="post_title"></div>
      </div>

     <div class="item item-image">
        <img ng-src="post_image">
     </div>

     <div class="item" dir="rtl">
       <p class="text-right item-text-wrap" ng-bind-html="post_content"></p>
     </div>

【问题讨论】:

您好,您是否尝试过使用 ng-href .. 或者如果您使用 ui-router ui-sref="app.postDetails(postId:post.ID)" 嗨,使用 ng-href 和 ui-sref 它返回 TypeError: Cannot read property 'rendered' of undefined 所以检查您的帖子实体中是否有属性(可能写不同)ID ..它可能是 Id 还是 id ?? 好吧,我尝试了不同的选项,例如 id 或 Id,但它们似乎都不起作用,代码与 JSON API 插件一起工作正常(http 请求路由和响应有点不同)但它不起作用使用 wp-rest-api,我认为它与此插件及其 api 回调有关,我更喜欢使用 wp-rest-api 否则我会切换到 JSON API 您不能使用 chrome 的网络选项卡嗅探请求并获取从 API 返回的 JSON,或者尝试使用 POSTMAN 发出请求并检查 JSON 的字段吗? 【参考方案1】:

您没有正确访问帖子项目,您使用的是 post.ID 而不是 recentPost.ID。我认为其他一切都很好。

应该是这样的:

<ion-item class="item item-avatar item-text-wrap" ng-repeat="recentPost in recentPosts | filter: searchText" href="#/app/posts/recentPost.ID">      

比 href 更好的是使用 ui-sref 来声明状态和参数并让 angular 构建 url。像这样:

<ion-item class="item item-avatar item-text-wrap" ng-repeat="recentPost in recentPosts | filter: searchText" ui-sref="app.postDetails(postId: recentPost.ID)">      

【讨论】:

tnx,这就是问题所在,出于某种原因我根本没有注意到它:),现在它使用了 post id

以上是关于在角度(离子)上的wp rest api中获取帖子绑定到id的主要内容,如果未能解决你的问题,请参考以下文章

WP REST API 从帖子类型中获取帖子

php 通过REST API获取WP帖子

为啥离子中的WP rest API在模拟器中不起作用

如何从 wp json rest api 获取特定数据

使用 WP Rest API javascript Client (backbonejs) 获取自定义帖子类型的 wordpress 帖子

WP Rest API:返回用户创建的帖子