[英]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.