使用Angular 5.1.1,我试图在复选框更改时调用函数。此方法适用于text
类型,但对于checkbox
输入类型,它始终会发送" 的值"即使未选中该框,也可以使用该功能。谁能解释我做错了什么?
<input type="checkbox" name="enabled" [checked]="score?.enabled" #enabled (change)="OnFieldChanged(enabled.value)" />
这是组件
import { Component} from '@angular/core';
@Component({
selector: 'score',
templateUrl: './score.component.html',
styleUrls: ['./score.component.less']
})
export class ScoreComponent {
public score: IScore;
constructor() {
}
OnFieldChanged(value: string): void {
var fieldValue = value;
}
}
答案 0 :(得分:1)
经过大量试验和错误,我找到了解决方案。您必须将该字段应用于[(ngModel)]
。简单地传递OnFieldChanged(judge)
也不起作用,因为布尔属性从未实际更新
<input type="checkbox" name="enabled" [checked]="score?.enabled" (change)="OnFieldChanged(judge.enabled)" [(ngModel)]="score.enabled" />
答案 1 :(得分:0)
只需通过以下功能访问分数,
<input type="checkbox" name="enabled" [checked]="score?.enabled" #enabled (change)="OnFieldChanged(score)" />
和TS内部
OnFieldChanged(value: string): void {
var fieldValue = value.enabled;
}