因此,我继承了一个项目,该项目未完全从ionic3移植到ionic4。更新某些<ion-checkbox>
实例时,我不得不更改:
<ion-checkbox
checked="selected.get(request.id)"
(click)="selectItem(request.id)"
color="tertiary"
slot="start"
>
收件人:
<ion-checkbox
(ngModel)="selected.get(request.id)"
(click)="selectItem(request.id)"
color="tertiary"
slot="start"
>
要使其正确切换。使用checked
会导致它在每次单击时均不触发,并导致该值从该点向前反转。
在这种情况下(ngModel)
到底在做什么?这基本上是ionic docs中显示的未记录功能,没有任何解释或示例使用...
请注意,selected
是Map<number, boolean>
,并且在同一视图中其他位置使用该bool值按预期工作。
编辑:我知道HTML属性和ng数据模型之间的区别,我不清楚该机制在这里是如何工作的...
答案 0 :(得分:3)
在较高的层次上,checked
属于HTML,而ngModel
属于Angular。
[已选中]
checked
是复选框的HTML属性,您可以使用下面的代码将复选框的HTML属性设置为angular。
[checked]="item.checked"
[(ngModel)]
[(ngModel)]
是一个Angular属性,用于双向绑定,这意味着您在.ts
文件中所做的任何更改都会反映在您的视图中,并且也会以其他方式反映出来。 More info
[(ngModel)]="item.checked"
现在,您什么时候使用这些?如果您的要求只是设置元素的选中属性,而您使用[checked]
将元素值绑定到[(ngModel)]
文件中的变量,则可以使用.ts
出于逻辑原因访问它。