如何取消选中angular2中的复选框
How to uncheck a checkbox in angular2
我在 HTML 文件中有这样的代码
<tr *ngFor="#tradeSource of tradeSources">
<td>
<label>
<input type="checkbox" ngControl="tradeSource" [(ngModel)]="tradeSource['checked']"/>
</label>
</td>
<td>{{tradeSource.blah}}</td>
<td>{{tradeSource.blah}}</td>
<td>{{tradeSource.blah}}</td>
</tr>
用户可以选中复选框,然后单击 "Process" 按钮,这将 运行 一些代码,在此代码具有 运行 之后,我想取消选中此复选框。我试过像
这样的代码
this.tradeSources[i]['checked'] = false
但这不起作用
您应该尝试的代码是:
this.tradeSources[i]['checked'] = false
编辑
我认为你的问题是因为每个复选框控件的名称都相同:
<input type="checkbox" ngControl="tradeSource"
[(ngModel)]="tradeSource.checked"/>
如果删除 ngControl
属性,它会起作用:
<input type="checkbox" [(ngModel)]="tradeSource.checked"/>
看到这个 plunkr:https://plnkr.co/edit/FdPHpOTSySkg2gLWjo7a?p=preview。
如果你真的想要一个 ngControl
你可以这样定义它:
<tr *ngFor="#tradeSource of tradeSources;#i=index">
<td>
<label>
<input type="checkbox" [ngControl]="'trade'+i"
[(ngModel)]="tradeSource.checked"/>
</label>
</td>
(...)
</tr>
我认为这不起作用的原因是未绑定 ngControl
的使用,并且可能还会在您的控制台中引发错误。只需执行以下操作就足够了:
<input type="checkbox" [(ngModel)]="tradeSource['checked']">
我在 HTML 文件中有这样的代码
<tr *ngFor="#tradeSource of tradeSources">
<td>
<label>
<input type="checkbox" ngControl="tradeSource" [(ngModel)]="tradeSource['checked']"/>
</label>
</td>
<td>{{tradeSource.blah}}</td>
<td>{{tradeSource.blah}}</td>
<td>{{tradeSource.blah}}</td>
</tr>
用户可以选中复选框,然后单击 "Process" 按钮,这将 运行 一些代码,在此代码具有 运行 之后,我想取消选中此复选框。我试过像
这样的代码this.tradeSources[i]['checked'] = false
但这不起作用
您应该尝试的代码是:
this.tradeSources[i]['checked'] = false
编辑
我认为你的问题是因为每个复选框控件的名称都相同:
<input type="checkbox" ngControl="tradeSource"
[(ngModel)]="tradeSource.checked"/>
如果删除 ngControl
属性,它会起作用:
<input type="checkbox" [(ngModel)]="tradeSource.checked"/>
看到这个 plunkr:https://plnkr.co/edit/FdPHpOTSySkg2gLWjo7a?p=preview。
如果你真的想要一个 ngControl
你可以这样定义它:
<tr *ngFor="#tradeSource of tradeSources;#i=index">
<td>
<label>
<input type="checkbox" [ngControl]="'trade'+i"
[(ngModel)]="tradeSource.checked"/>
</label>
</td>
(...)
</tr>
我认为这不起作用的原因是未绑定 ngControl
的使用,并且可能还会在您的控制台中引发错误。只需执行以下操作就足够了:
<input type="checkbox" [(ngModel)]="tradeSource['checked']">