访问'已检查'使用Angular字段绑定

时间:2017-12-15 01:58:36

标签: angular

使用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;
    }
}

2 个答案:

答案 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;
}