【问题标题】:How to create toggle buttons generated by for loops in angular 4/6如何在角度 4/6 中创建由 for 循环生成的切换按钮
【发布时间】:2019-03-15 13:01:57
【问题描述】:

我创建了这个演示,其中包含三个按钮。这些是通过在后端响应上运行的 for 循环生成的。

所有按钮都是可点击的,并且可以通过点击事件激活和停用,但是我应该使用什么逻辑来一次只激活一个按钮。 (它应该像切换按钮一样工作,但这些不是切换按钮)

所以选择任何一个按钮都会使其他 2 个按钮失效。

请看下面的演示代码,

updated code / current working logic

【问题讨论】:

  • 您可以使用单选按钮对按钮进行分组,那么只会启用 1 个。或者您可以拥有类似“禁用”属性的东西。单击按钮时,您可以简单地遍历数组并禁用所有其他按钮
  • 这些不是单选按钮,我需要多个单独的按钮,它包含的信息不仅仅是名称。这只是按钮的一个示例
  • 您可以使单选按钮看起来像您想要的任何东西,包括按钮,并且仍然使用组功能。就我个人而言,我会选择这样做,而不是引入新的逻辑/更多代码来执行循环等。

标签: angular typescript button


【解决方案1】:

我修改了代码,变成这样

  someMethod(something) {
    this.groupOfButton.forEach(btn => {
       btn['active'] = (btn.number === something.number);
    });
  }

【讨论】:

  • 非常感谢@VivekKumar 的逻辑,它工作得非常顺利,我无法弄清楚方程式部分,但感谢你现在我知道了。我唯一的另一个问题是,我可以切换吗?就像再次单击同一个按钮一样,它应该被停用。我试图用你的逻辑来做,但它没有切换按钮
  • @jay,我更新了切换的答案(当它被接受时你会看到它)。您只需要在 forEach 中添加一个 if 语句 if (btn.number === something.number) { btn['active'] = !btn['active']; }
  • @yay,是的,你可以!只是玩逻辑。这个想法是保持数据完整。根据需要随时修改。
猜你喜欢
  • 2021-01-02
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 2015-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-22
相关资源
最近更新 更多