簡體   English   中英

如何將復選框設置為有條件地選中

[英]How to set a checkbox as checked conditionaly

我有一些字段為布爾值的JSON,但不幸的是,它們的值不是1/0或true / false。 取而代之的是,它們的值是“ Y” /“ N”,而我為此苦苦掙扎。

我試圖基於以下條件設置檢查屬性:

[checked]="myobj.isdeleted == 'Y' ? true : false"
[attr.checked]="myobj.isdeleted == 'Y' ? true : false"

要么

[checked]="myobj.isdeleted == 'Y' ? true : null"
[attr.checked]="myobj.isdeleted == 'Y' ? true : null"

但它們都不起作用。 有什么想法要實現嗎?

完整標記:

<input type="checkbox" name="isdeleted"  [checked]="myobj.isdeleted=='T' ? true : false" id="isdeleted" [(ngModel)]="myobj.isdeleted">

您可以在組件類中編寫屬性:

public get isObjectDeleted(): boolean {
    return this.myobj.isdeleted === "Y";
}
public set isObjectDeleted(value: boolean) {
    this.myobj.isdeleted = value ? "Y" : "N";
}

並使用該財產ngModel ,如圖此stackblitz

<input type="checkbox" [(ngModel)]="isObjectDeleted" name="isdeleted" id="isdeleted" />

如果要傳遞屬性名稱(例如isdeleted )作為參數,則可以分別使用[ngModel](ngModelChange)

<input type="checkbox" [ngModel]="isChecked('prop1')" (ngModelChange)="setChecked('prop1', $event)" name="prop1" />

使用組件類中定義的兩個公共方法:

public isChecked(propName: string): boolean {
    return this.myobj[propName] === "Y";
}
public setChecked(propName: string, value: boolean): void {
    this.myobj[propName] = value ? "Y" : "N";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM