Html 如何在ngFor事件后将复选框输入设置为false

Html 如何在ngFor事件后将复选框输入设置为false,html,angular,Html,Angular,我有一个从ngFor创建的列表,在这个列表中我有一个带有输入复选框的子项,我需要在一个特定事件完成后将all checked==true设置为false 我在angular 2/4上找不到关于这个实现的任何信息,没有Jquery 下面的代码示例 <div *ngFor="let x of all"> <input type="checkbox" #userId (click)="selectedX($event, userId.checked, x)"> </

我有一个从ngFor创建的列表,在这个列表中我有一个带有输入复选框的子项,我需要在一个特定事件完成后将all checked==true设置为false

我在angular 2/4上找不到关于这个实现的任何信息,没有Jquery

下面的代码示例

<div *ngFor="let x of all">
   <input type="checkbox" #userId (click)="selectedX($event, userId.checked, x)">
</div>

基本上,您可以从模式中选择多个用户并选择激活或停用它们。我想在模式关闭后将复选框设置为false


找不到执行此操作的方法。

维护一个数组字段以存储复选框状态。为模式关闭事件注册一个事件。然后可以循环并将所有复选框状态设置为false。这里使用双向绑定

page.component.ts

export class Page {
    chkBoxStates: [{state: true, data:{}}, {state: false, data:{}}, {state: true, data:{}}];

    onModalClose(): void {
        _.each(this.chkBoxStates, (item) => {
            item.state = false;
        })
    }
}
page.component.html

<div *ngFor="let item of chkBoxStates">
    <input type="checkbox" [(ngModel)]="item.state">
</div>

维护一个数组字段以存储复选框状态。为模式关闭事件注册一个事件。然后可以循环并将所有复选框状态设置为false。这里使用双向绑定

page.component.ts

export class Page {
    chkBoxStates: [{state: true, data:{}}, {state: false, data:{}}, {state: true, data:{}}];

    onModalClose(): void {
        _.each(this.chkBoxStates, (item) => {
            item.state = false;
        })
    }
}
page.component.html

<div *ngFor="let item of chkBoxStates">
    <input type="checkbox" [(ngModel)]="item.state">
</div>

所以我按照杜拉杰的话创建了一个新数组,在这个新数组中我推送我的旧数据和一个新的状态信息

for (let user of users) {
    this.newArray.push({user: user, state: false});
}

通过这种方式,我可以迭代这个新数组,并且仍然可以使用我的旧列表,并且可以使用新的状态信息设置我的复选框,如Dulaj所示。

所以我按照Dulaj所说的,创建了一个新数组,在这个新数组中,我推送我的旧数据和新的状态信息

for (let user of users) {
    this.newArray.push({user: user, state: false});
}

通过这种方式,我可以迭代这个新数组,仍然可以使用我的旧列表,并且可以使用新的状态信息设置我的复选框,如Dulaj所示。

那么这个For将在我以前的For中?因为我无法更改原始列表,所以它是我从端点订阅的对象列表。该对象列表中是否有保存复选框值的字段?如何确定复选框的值?因此,此For将在我以前的For中?因为我无法更改原始列表,所以它是我从端点订阅的对象列表。该对象列表中是否有保存复选框值的字段?如何确定复选框的值?