【问题标题】:Selecting correct boxes in *ngFor在 *ngFor 中选择正确的框
【发布时间】:2021-04-26 13:28:11
【问题描述】:

我正在开发一个角度应用程序。我在 *ngFor 中遇到了一些问题。我的代码如下

https://stackblitz.com/edit/ngx-slider-simple-slider-example-xfkvcj?file=src%2Fapp%2Fapp.component.html

我面临的问题是,如果我点击第二个框,那么第四个框会自动被点击,第一个值也是如此。我想如果我点击第二个框,那么只有第二个框被点击,其他框也一样。我该怎么做?

【问题讨论】:

    标签: angular angular8 angular9 angular10


    【解决方案1】:

    这是因为 ngFor 在你的 Array 上循环,所以每次 angular 都会创建两个 li 节点。你只需要一个 li 并将 ul 节点也放在循环之外。

    这是一个基于 id 的示例:https://stackblitz.com/edit/ngx-slider-simple-slider-example-uqyu62?file=src/app/app.component.html

    基于此链接更新(见评论):https://stackblitz.com/edit/angular-mat-card-example-d8nydd?file=src%2Fapp%2Fapp.component.ts

    如果你真的不能更新你的 myData 结构,你可以在一个外部变量中管理每张卡片的状态:https://stackblitz.com/edit/angular-mat-card-example-bwuduo?file=src/app/app.component.ts

    【讨论】:

    • 我正在循环这个数组并在 mat 卡上显示数据。我希望每张垫卡上都有两个标签。我该怎么做
    • 我有类似堆栈闪电中提到的场景stackblitz.com/edit/…
    • 是否可以在不修改 myData Array 的情况下做到这一点?
    • 如果你只有两个标签,是的,但如果它是动态的,那就更乏味了。使用两个选项卡,您不需要遍历项目,因此您可以删除 ngFor 并放置两个 li 节点。但是您必须为每张卡单独选择状态。
    • 能否更新我的stackblitz stackblitz.com/edit/… 有助于理解。我必须保持 *ngFor 与我正在执行其他功能的数据一样。我刚刚发布了我面临问题的部分
    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 2011-04-02
    • 1970-01-01
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多