javascript - 需要在选中复选框后立即取消选中该复选框。 Angular 4

标签 javascript angular

我有一个对象数组,其 bool 属性绑定(bind)到复选框

普朗克 https://plnkr.co/edit/j25nOhYm1MNeJzUJzBBs

 this.data =  [{ "name":"Ford", "selected":false},
    { "name":"BMW","selected":false },
    { "name":"Fiat","selected":false }
]

在 html 中我尝试了 ngModel 和 ngModelChange

  <li *ngFor="let item of data;">
    <input class="checkbox binning-checkbox" type="checkbox"  
    (ngModelChange)="select(item)" [(ngModel)]="item.selected">
   {{ item.name}}
  </li>

我也尝试过[检查]和(更改)

  <li *ngFor="let item of data;">
    <input class="checkbox binning-checkbox" type="checkbox"  
    (change)="select(item)" [checked]="item.selected">
   {{ item.name}}
  </li>

也尝试过

<div>
<li *ngFor="let item of data;">
    <input class="checkbox binning-checkbox" type="checkbox" (change)="select(item)" [(ngModel)]="item.selected"> {{ item.name}}
</li>

更新了 plunkr 但是事件代码

 public select(item){
alert(item.selected );
item.selected = false;  }

无法“取消选择”复选框

最佳答案

您可以使用 setTimeout 来“破解”此功能,这将在很短的时间内将复选框设置为 false :)

public select(item){
  setTimeout(() => {
    item.selected = false;
  })
}

在您的示例演示中,我使用了 ngModelngModelChange 版本:https://plnkr.co/edit/53Tb6wiXYAlat52VPuwG?p=preview

关于javascript - 需要在选中复选框后立即取消选中该复选框。 Angular 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47041938/

相关文章:

css - 如何为特定组件添加 html、正文选择器样式?

javascript - 使用 droparea js 在 1 个页面中创建多个上传图像

javascript - 如何让 require.context 在有/没有 Craco 的情况下与 Create React App 一起工作?

angular - 错误 : (SystemJS) XHR error (404 Not Found) loading ng2-appinsights

angular - 错误 TS2304 : Build:Cannot find name 'Iterable' after upgrading to Angular 4

Angular -cli : How to use interpolation in a property binding

angular - 在 Nativescript 和 Angular Schematics 的共享代码中找不到模块

javascript - node.js 中的编码风格

javascript - 在D3 Javascript中单击节点时如何显示和隐藏链接和节点

javascript - 当call和apply嵌套在函数中时, "this"关键字指向什么?