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

Omo*_*tis 3 angular ionic4

所以我继承了一个不完全从ionic3移植到ionic4的项目。更新某些<ion-checkbox>实例时,我不得不更改:

  <ion-checkbox 
    checked="selected.get(request.id)" 
    (click)="selectItem(request.id)" 
    color="tertiary" 
    slot="start"
  >
Run Code Online (Sandbox Code Playgroud)

到:

  <ion-checkbox 
    (ngModel)="selected.get(request.id)" 
    (click)="selectItem(request.id)" 
    color="tertiary" 
    slot="start"
  >
Run Code Online (Sandbox Code Playgroud)

让它正确切换。的使用checked导致它在每次第一次点击时失火,并且从那一点向前反转值。

(ngModel)在这种情况下到底在做什么?这基本上是离子文档中显示的未记录功能,没有解释或示例使用...

请注意,在同一视图中其他地方使用该布尔值的selectedaMap<number, boolean>和用法按预期工作。

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

Nid*_*eph 6

在高层次上,checked属于 HTML 而ngModel属于 Angular。

[检查]

checked 是复选框的 HTML 属性,在 angular 中,您可以使用以下代码设置复选框的选中属性。

[checked]="item.checked"
Run Code Online (Sandbox Code Playgroud)

[(ngModel)]

[(ngModel)]是用于双向绑定的 Angular 属性,这意味着您在.ts文件中所做的任何更改都将反映在您的视图中,并且也会以其他方式反映。更多信息

[(ngModel)]="item.checked"
Run Code Online (Sandbox Code Playgroud)

现在,你什么时候使用这些?[checked]当您的要求只是设置元素的检查属性时使用,而您用于[(ngModel)]将元素值绑定到.ts文件中的变量,以便您可以访问它以用于背后的逻辑。