【问题标题】:how can I increment json value in Typescript example increment likes or dislikes on button clicks如何在 Typescript 示例中增加 json 值在按钮单击时增加喜欢或不喜欢
【发布时间】:2019-01-17 18:45:00
【问题描述】:

如何在 Typescript 示例中增加 json 值在按钮点击时增加喜欢或不喜欢。

movies: any[] = [
   { name: "Fan", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/fan.jpg" },
   { name: "Airlift", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/airlift.jpg" },
   { name: "Wazir", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/wazir.jpg" },
   { name: "Neerja", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/neerja.jpg" },
   { name: "Bajirao mastani", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/bajirao.jpg" }
];

【问题讨论】:

  • 你能分享一些你到目前为止得到的代码,重要的打字稿和html片段吗?

标签: json angular typescript


【解决方案1】:

假设您的列表在 HTML 中看起来像这样,您首先需要监听点击事件:

HTML

<div *ngFor="let movie of movies">
    ...
    <div class="like" (click)="onLike(movie)">...</div>
    <div class="dislike" (click)="onDislike(movie)">...</div>
</div>

使用上面显示的模板,您可以遍历 movies 数组中的每个 movie。您还必须将click 事件绑定到喜欢和不喜欢按钮,以了解用户何时单击其中之一。

打字稿

export class MoviesComponent {

    movies: any[] = [
        { name: "Fan", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/fan.jpg" },
        { name: "Airlift", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/airlift.jpg" },
        { name: "Wazir", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/wazir.jpg" },
        { name: "Neerja", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/neerja.jpg" },
        { name: "Bajirao mastani", likes: 0, dislikes: 0, unseen: 0, fimage: "/images/bajirao.jpg" }
    ];

    onLike(movie) {
        // find the movie in the movies array
        const index = this.movies.indexOf(movie);
        // update the movie
        this.movies[index].likes++;
    }

    onDislike(movie) {
        // find the movie in the movies array
        const index = this.movies.indexOf(movie);
        // update the movie
        this.movies[index].dislikes++;
    }

}

当用户单击其中一个按钮时,您只需增加喜欢或不喜欢的次数。 给每部电影一个唯一的 id 以便在数组中更安全地找到它可能是一个好主意。

如果这有帮助,请告诉我!

【讨论】:

  • 很高兴能帮到你!如果这解决了您的问题,请检查我的答案左侧的箭头:)
猜你喜欢
  • 1970-01-01
  • 2020-11-19
  • 2022-06-28
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
  • 2016-08-30
  • 1970-01-01
  • 2017-05-16
相关资源
最近更新 更多