从API结果填充模型时,我遇到了一个奇怪的问题。
我的模型看起来像这样:
import {Company} from './../api/odata/data/Company';
export class MyModel {
...
isEnabled = false;
....
constructor(data: Company= null) {
try {
this.isEnabled = !data.isDisabled;
...
}
...
}
当我填充数据模型时,如果data.isDisabled等于false,则this.isEnabled应为true,但它返回false ...
答案 0 :(得分:3)
data.isDisabled
是一个字符串好友。您可以通过多种方式将其转换为布尔值。但我很好奇数据来自哪里。
如果没有办法确保data.isDisabled
作为布尔值出现,你可以做两件事。
1-检查字符串值是什么,并根据返回布尔值。
this.isEnabled = data.isDisabled === 'true' ? false : true
2-或使用eval,我不推荐
this.isEnabled = eval(data.isDisabled);
3-向后兼容的解决方案,最好是三个
如果isDisabled是实际的布尔值,这甚至可以工作。
this.isEnabled = !JSON.parse(data.isDisabled);
查看有关字符串到布尔转换here
的更多信息