我在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);
}
答案 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