Html 我正在div元素上实现选择/取消选择。我可以在一次单击中选择div,但不能在下一次单击同一div时取消选择它?

Html 我正在div元素上实现选择/取消选择。我可以在一次单击中选择div,但不能在下一次单击同一div时取消选择它?,html,angular,angular-material,Html,Angular,Angular Material,我正在用div实现用户名列表,并使用for循环。我想在第一次单击时选择div,然后在下一次单击时取消选择 我已尝试选择代码,但无法在第二次单击时取消选择 TS: selected: any = []; selectItem(obj, idx) { this.selected[idx++] = obj; console.log('Here are selected', this.selected); } deleteUser(): void { console.log(this.s

我正在用div实现用户名列表,并使用for循环。我想在第一次单击时选择div,然后在下一次单击时取消选择

我已尝试选择代码,但无法在第二次单击时取消选择

TS

selected: any = [];

selectItem(obj, idx) {
  this.selected[idx++] = obj;
  console.log('Here are selected', this.selected);
}

deleteUser(): void {
  console.log(this.selected);

  if (confirm('Are you to delete user ?')) {
    for (var user in this.selected) {
      this.apiserv.deleteUser(this.selected[user].id).subscribe((data: User) => {
        this.getAllUser();
      });
    }
  }
}
HTML

<mat-list-item *ngFor="let u of users; let idx = index" class="user-item" (click)="selectItem(u,idx)">
  <div class="item-wrp">
    <div class="select-item item-block">
      <div [ngClass]="{'selectedDiv': idx == selected}" class="select-stl">
      </div>
    </div>
  </div>
</mat-list-item>


我希望在此列表上也使用取消选择选项实现multiselect。

我假设您希望将所有选定项存储在
选定的
数组中

然后在你的TS文件中

selectItem(obj, idx) {
    this.selected[idx] = !this.selected[idx] ? obj : null;
    console.log("Here are selected", this.selected);
}
在模板中,更改
[ngClass]
,如下所示

<div [ngClass]="{'selectedDiv': selected[idx]}" class="select-stl">
    // Display list item
</div>

//显示列表项

在这里,我们在单击时发送所选用户的索引,并将该用户的数据存储在所选的
中的同一索引中。取消选择时,我们将用null替换数据。

我假设您希望将所有选定项存储在您的
选定的
数组中

然后在你的TS文件中

selectItem(obj, idx) {
    this.selected[idx] = !this.selected[idx] ? obj : null;
    console.log("Here are selected", this.selected);
}
在模板中,更改
[ngClass]
,如下所示

<div [ngClass]="{'selectedDiv': selected[idx]}" class="select-stl">
    // Display list item
</div>

//显示列表项

在这里,我们在单击时发送所选用户的索引,并将该用户的数据存储在所选的
中的同一索引中。在取消选择时,我们将数据替换为null。

这在@nash11中非常有效。非常感谢您。@Shripad-如果这对您有帮助,请将其标记为正确:)查看此链接:效果非常好@nash11。非常感谢。@Shripad-如果这对您有帮助,请将其标记为正确:)查看此链接: