私のコードがある中でのlocalStorage値を取得する方法:</p> <p>HTML、2角度テンプレートここ
<div *ngFor="let comment of comments | orderBy: '-'+orderBy">
<div class="comment-item">
<div class="row">
<div class="col-md-8">
{{comment.userName}}
</div>
<div class="col-md-4">
<div class="comment-timeago">
{{comment.time | timeAgo}}
</div>
<div class="likedicon">
<i class="fa fa-heart-o disliked" aria-hidden="true" (click)="likeComment(comment._id, comment)"></i>
<i class="fa fa-heart liked" aria-hidden="true" *ngIf="comment.liked == 'liked'" (click)="dislikeComment(comment._id, comment)"></i>
</div>
<div class="like-num">
{{comment.like}}
</div>
</div>
</div>
</div>
</div>
ファイルcomponent.ts:
すべてのコメントが好きだったり、独立して嫌いに切り替えることができlikeComment(commentId, comment) {
localStorage[commentId] = "liked";
comment.liked = localStorage[commentId];
comment.like ++;
this.dataService.likeComment(commentId).subscribe(
// Post data to server
error => console.log(error)
)
}
dislikeComment(commentId, comment) {
localStorage[commentId] = "disliked";
comment.liked = localStorage[commentId];
comment.like --;
this.dataService.dislikeComment(commentId).subscribe(
// Post data to server
error => console.log(error)
)
しかし、どのステータスを表示するかはlocalStorageを使って判断する必要があります。おそらく次のようになります。
*ngIf="localStorage.getItem(comment._Id) == 'liked'"
残念ながら、それは間違った構文です。私はゲッターが私の他のケースで働いていることを知り、参照番号はAngular2 How to display localStorage value inside HTML5 template?です。
この場合、私は関数内でcommentLike()を使用することができず、グローバル変数も使用しないので、これを行うことはできません。どうすれば解決できますか?
:
今では私たちはグローバル宣言された関数を持っているとして、簡単に任意のテンプレートで使用する準備ができていますあなたの 'コメント 'をlocalstorageに保存しましたか? – mickdev
私はそれを取得しません。 「どのステータスを表示するかを決定するにはlocalStorageを使用する必要があります」と記述します。あなたのコメントをlocalstorageに保存していない場合(そして更新の場合は更新しないでください)、好きなコメントと嫌いなコメントをどのように判断しますか? – mickdev
申し訳ありませんが、コメントが配列であると誤解しており、localStorage.setItem(commentId、 "favorite"(または "disliked"))のようにコメントに別々にコメントを格納していますので、localStorageがkey:commentId、value: " "ありがとうございました:) – PaulHuang