如何获取用户 ID 并以 Angular 6 的形式返回他的帖子及其评论

Posted

技术标签:

【中文标题】如何获取用户 ID 并以 Angular 6 的形式返回他的帖子及其评论【英文标题】:How to gets user id and returns his posts with their comments n angular 6 【发布时间】:2019-03-24 20:42:10 【问题描述】:

如何从他们的 user id 获取所有用户并对其进行迭代,当我单击特定用户时,我会得到他的所有帖子和 cmets?

您可以从此 API 获取帖子:https://jsonplaceholder.typicode.com/posts

以及来自此 API 的他们的 cmets:https://jsonplaceholder.typicode.com/comments

这是我的一个测试 stackblitz 项目: https://stackblitz.com/edit/angular-g5fqzi

getUserPosts(userId: number) 
  this.http.get(`$this._postsURL`)

  //.pipe(filter(data => userId === userId))
  //this.http.get(`$this._postsURL/$userId`)
    .subscribe(data => 
     //this.UserPosts  = data;
      let resources = data[userId];
      this.UserPosts = resources;
      console.log(this.UserPosts);
    )

【问题讨论】:

【参考方案1】:

Qusay,如果我理解正确的话,您只是想获取特定 userId 的帖子。

如果您正在发出一个新的 HTTP 请求,您可以在请求中传递 userId,只获取您想要的帖子,如下所示:

this.http.get(`$this._postsURL?userId=$userId`)
  .subscribe(data => 
    // do stuff
  );

但是,如果您已经在内存中拥有所有帖子(来自先前的请求)并且只想选择特定 userId 的帖子,您可以这样做:

const userPosts = this._postsArray.filter(post => post.userId == userId);

或者如果总是只有一个结果,你可以使用方法find而不是filter,只要记住find返回值,filter返回一个带有该值的新数组。

const userPosts = this._postsArray.find(post => post.userId == userId);

我希望这会有所帮助。

【讨论】:

以上是关于如何获取用户 ID 并以 Angular 6 的形式返回他的帖子及其评论的主要内容,如果未能解决你的问题,请参考以下文章

如何从给定的外部 url 获取数据会话 ID 和所有内容,而不是来自我的应用程序(路由)在 Angular 6

Angular-fullstack 获取当前用户 ID

如何使用 @azure/msal-angular 获取用户的 AAD 成员资格

使用 *ngFor (angular + apollo + graphcool) 获取用户的帖子

如何通过与id进行比较来合并三个不同的数组?在Angular 6中

当使用angular8单击选项卡时,如何使选项卡聚焦在第一个字段上