javascript - 在 ngFor 中单击更改特定按钮文本

标签 javascript angular ngfor

我有一个使用 ngFor 的 10 个按钮的列表。我想更改按钮的名称以启用和禁用。起初我有 Disable 并且当我点击按钮时,带有 id 的特定按钮应该将文本更改为 Enable 但是每 10 个按钮得到改变了。

html

<div *ngFor="let task of tasks">
    <button (click)="enableDisableRule(task.id)">{{toggleButton}}</button>
</div>

组件

toggle = true;
toggleButton = 'Disable';

tasks = [
  {"id": 1, "name":"john"},
  {"id": 2, "name":"tom"},
  .............
  .......
  {"id":10, "name":"harry"}
]

enableDisableRule(id) {
    this.toggle = !this.toggle;
    this.toggleButton = this.toggle ? 'Disable' : 'Enable';
}

谁能告诉我该怎么做才能只更改特定的按钮文本。

感谢任何帮助。谢谢

最佳答案

您需要为每个 Button 对象添加两个以上的属性,您不能使用同一个变量。

tasks = [
  {"id": 1, "name":"john","toggle":false,"status":'Disable'},
  {"id": 2, "name":"tom","toggle":false,"status":'Disable'},
  {"id":10, "name":"harry","toggle":false,"status":'Disable'}
];

然后,

enableDisableRule(button) {
    button.toggle = !button.toggle;
    button.status = button.toggle ? 'Disable' : 'Enable';
}

STACKBLITZ DEMO

关于javascript - 在 ngFor 中单击更改特定按钮文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51584436/

相关文章:

javascript - 如何使用 "M-d-Y G:i"格式禁用 jquery datetimepicker 中的日期

javascript - 解析嵌套的 JSON 并以特定格式显示

javascript - 在 Vue js 中动态使用多个页面(组件)

angular2 map 数据作为特定对象类型

javascript - '错误 : Uncaught (in promise): No provider for Jsonp' (HTML/Javascript/Typescript/Angular2)

javascript - Angular 如何等待订阅

html - 有效地将 *ngFor 与网格 CSS 结合使用

Angular 6延迟循环

angular - *ngFor 循环遍历数组 Angular6

javascript - 将 PHP 变量传递给 ajax 并基于该变量运行 PHP 函数