我正在尝试使用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)
小智 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)国家总是违背我的期望,正如你所说
我已经像这样实现了它:
<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)