【发布时间】:2020-06-28 13:46:49
【问题描述】:
我想在单击like 按钮时增加我的like 数组长度并减少数据库中的like 长度。这是我的简要代码 like.component.ts
@Input('isLiked') isLiked: boolean;
likes: Like[] = [];
localUser;
constructor(
private postService: PostService,
private postActivity: PostActivityService
) {}
ngOnInit(): void {
this.localUser = this.postService.getLocalUSer();
}
like(id) {
this.postActivity.likePost(id).subscribe((data) => {
this.likes = data.likes;
this.isLiked = this.likes.includes(this.localUser._id)
console.log('liked data', this.likes,this.isLiked);
});
}
disLike(id) {
this.postActivity.disLike(id).subscribe((data) => {
this.likes = data.likes;
this.isLiked = this.likes.includes(this.localUser._id)
console.log('liked data', this.likes,this.isLiked);
});
}
like.component.html
<button (click)="isLiked ? disLike(p._id) : like(p._id)" mat-button>
<mat-icon aria-hidden="false" [color]="isLiked ? 'warn':'primary'" >{{ isLiked ? 'favorite' : 'favorite_border'}}</mat-icon>
{{p.likes.length}}
<ng-container *ngIf="p.likes.length===0 || p.likes.length===1; else elseTemplate">
like
</ng-container>
<ng-template #elseTemplate>
likes
</ng-template>
</button>
card.component.html
<app-like [p]="p" [isLiked]="p.likes.includes(signUser._id)"></app-like>
活动后服务
likePost(id) {
return this.http.put<Mypost>(this.url + '/like', JSON.stringify({ postId: id }), {
headers: this.headers,
});
}
disLike(id) {
return this.http.put<Mypost>(this.url + '/unlike', JSON.stringify({ postId: id }), {
headers: this.headers,
});
}
喜欢长度更新
【问题讨论】:
标签: angular angular9 httpservice