Angular中的复选框不接受关于提交的最新值

时间:2018-08-06 11:25:24

标签: angular typescript angular6

我在TypeScript中定义了一个静态array,如下所示:

  rights: any[] = [
    { right: "Add", value: true },
    { right: "Update", value: false },
    { right: "Delete", value: false },
    { right: "Edit", value: true }
  ]

在我的HTML中,我循环进入并显示true复选框,默认情况下会选中它们。现在的问题是,当我更改值时,它仍然返回与TypeScript中定义的值相同的值,并且我需要新的更新值。

<h4 *ngFor="let r of rights">
 <input type="checkbox" [checked]="r.value">{{r.right}}
</h4>
<button (click)="go(rights)">Update</button>

&,然后在TypeScript中,将其记录到控制台。

 go(rights){
    console.log(rights);
  }

2 个答案:

答案 0 :(得分:2)

您需要通过ngModel进行绑定。

<h4 *ngFor="let r of rights">
 <input type="checkbox" [(ngModel)]="r.value">{{r.right}}
</h4>
<button (click)="go(rights)">Update</button>

您还需要在模块中导入FormsModule,以使[(ngModel)]正常工作。

答案 1 :(得分:1)

您的代码不起作用,仅是因为您选择了错误的数据绑定类型。

数据绑定是一种机制,用于协调用户看到并可以处理给定数据。您可以在绑定源和HTML元素之间定义绑定,以使框架能够完成工作。

Angular提供了几种类型的数据绑定,对于您而言,您需要具有curl -X GET "localhost:9200/_search" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } } 数据绑定,这仅意味着您对目标元素的更改将更改源,而对源数据的任何更改将目标元素的可见值。

双向数据绑定分别作为127.0.0.1:9200/tourdata/tours/_search Two-way

在您的情况下,您只需要将复选框更改为:

Interpolation