我将代码放在下面。我有一个帖子服务,该服务可以跟随和取消关注帖子,并将其ID添加到一个Observable数组中。我可以根据需要在视图中显示项目,但是当我将其推送到followedPostsArray时,它将推送1 +每个可能已经在followedPostsArray中的项目。
当我取消关注时,视图也不会改变。
Component.ts
this.postService.getFollowedPosts().subscribe((followedPosts) => {
followedPosts.forEach((postId) => {
this.frApiService.GetPostById(postId).subscribe((post) => {
this.followedPostsArray.push(post);
console.log(this.followedPostsArray);
});
});
});
Component.html
<div class="item lib-flex" *ngFor="let post of followedPostsArray; let i = index;">
<div class="title lib-grow" (click)="loadPost(post)">
{{post?.title | shortenContentPipe}}
<span (click)="unfollow(post, $event)">UNFOLLOW</span>
</div>
<div class="time lib-flex lib-main-center lib-cross-center lib-pr5">
<i class="icon icon-Clock lib-mr5"></i>
{{getAge(post?.latestCommentDateTime)}}
</div>
</div>
答案 0 :(得分:0)
不清除<i>
似乎是一个错误。解释给出的代码和您的附加订阅,我想您会在添加新帖子时重新加载所有帖子。
您必须首先重置阵列。我仍然不知道您的“跟随”按钮调用哪种方法,所以我用一个符号名称来即兴创作。
<a href="/some/link">Content</a>
这应该会阻止您重复输入。