angular2复选框ng-model未更新

Pic*_*cci 36 checkbox angular

我正在尝试使用Angular 2.0进行简单的操作我希望将模型绑定到"输入复选框",使用方法注册"更改",在复选框状态更改时执行方法并根据模型的状态执行操作.一切正常,但是当执行与change事件链接的方法时,模型的状态与我的预期相反,即当选中该复选框时为false,当取消选中该复选框时为true.这是代码片段;

<input value={{object.name}} type="checkbox" [(ng-model)]="object.selected" (change)="onChange(object.selected)">
Run Code Online (Sandbox Code Playgroud)

关于我做错了什么的任何想法?

And*_*eza 47

从angular2.beta8开始,这个简单的技巧就可以了

<input type="checkbox" [(ngModel)]="object.selected" />
Run Code Online (Sandbox Code Playgroud)

从Angular 4开始,必须name为此绑定添加属性.

<input type="checkbox" [(ngModel)]="object.selected" name="element_name"/>
Run Code Online (Sandbox Code Playgroud)

  • 要与*Angular4*一起使用,我必须在输入字段中添加"name"属性. (6认同)

小智 25

没有ngModel的方法

<input
    id="{{fieldId}}"
    type="checkbox"
    [checked]="displayValue"
    (click)="setDisplayValue($event.target.checked)"
>
Run Code Online (Sandbox Code Playgroud)

displayValue将是getter/setter setDisplayValue()方法将更新记录,因此displayValue将被更新


小智 15

对我来说,只有在我使用时才有效(ngModelChange):

<input type="checkbox" 
       [(ngModel)]="object.selected" 
       (ngModelChange)="onChange(object.selected)">
Run Code Online (Sandbox Code Playgroud)

如果我使用(change)或者(click)国家总是违背我的期望,正如你所说


TGH*_*TGH 9

我已经像这样实现了它: <input #angularcb type="checkbox" (change)="angular = angularcb.checked" />

您还可以在此处查看更多详细信息和现场演示:http ://www.syntaxsuccess.com/viewarticle/input-controls-in-angular-2.0 http://www.syntaxsuccess.com/angular-2-samples/# /演示/输入


小智 6

<input type="checkbox" [ngModel]="object.selected == 'Y'" (ngModelChange)="object.selected=$event?'Y':'N'"> 
Run Code Online (Sandbox Code Playgroud)

  • 一些解释可以帮助其他人更好地理解解决方案 (2认同)