'checked'和(ngModel)有什么区别

时间:2019-07-23 21:21:49

标签: angular ionic4

因此,我继承了一个项目,该项目未完全从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中显示的未记录功能,没有任何解释或示例使用...

请注意,selectedMap<number, boolean>,并且在同一视图中其他位置使用该bool值按预期工作。

编辑:我知道HTML属性和ng数据模型之间的区别,我不清楚该机制在这里是如何工作的...

1 个答案:

答案 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出于逻辑原因访问它。