作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 JSON,其中一些字段是 bool 值,但不幸的是它们的值不是 1/0 或 true/false。取而代之的是,他们的值(value)观是“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
,如 this 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)方法:
public isChecked(propName: string): boolean {
return this.myobj[propName] === "Y";
}
public setChecked(propName: string, value: boolean): void {
this.myobj[propName] = value ? "Y" : "N";
}
关于javascript - 如何将复选框设置为有条件选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48130495/
我是一名优秀的程序员,十分优秀!