【问题标题】:boolean value returns undefined on the client in angular布尔值在客户端上以角度返回未定义
【发布时间】:2020-10-29 04:12:16
【问题描述】:

我有一个 asp.net 核心后端,通过 api 调用获取数据。我有这个对象模型:

public class CostGroup
{
    public long Id { get; set; }
    public string Name { get; set; }
    public int Rank { get; set; }
    public bool HcPlanning { get; set; }
    public bool OtherPlantCost { get; set; }
    public bool DirectLabCost { get; set; }
    public long CompanyId { get; set; }
    public Company Company { get; set; }
}

还有这个 api 调用:

[HttpGet("{id}")]
public CostGroup GetCostGroup(long Id)
{
    return DataContext.CostGroups.Find(Id);
}

这是angular中对应的服务:

  getCostGroup(id: number) {
    return this.http.get<CostGroup>('api/masterdata/costaccounting/costgroups/' + id);
  }

一切正常,我在客户端得到这样的结果:

{"id":24,"name":"ss","rank":123,"hcPlanning":true,"otherPlantCost":true,"directLabCost":true,"companyId":1,"company":null}

如您所见,布尔值被正确识别。但是如果我想读取布尔值,我会得到未定义的。我以这样的角度阅读了CostGroup 对象:

this.service.getCostGroup(e.key).subscribe(costGroup => {
  this.costGroup = costGroup;
  this.companyId = costGroup.companyId;
  this.hcplanning = costGroup.hcplanning;
  this.otherplantcost = costGroup.otherplantcost;
  this.directlabcost = costGroup.directlabcost;
  alert(costGroup.directlabcost);
  this.editMode = true;
  this.name = costGroup.name;
  this.popup.instance.show();
});

所有布尔字段都未定义。为什么?如何克服这个问题?

【问题讨论】:

    标签: angular asp.net-core-webapi


    【解决方案1】:

    您的对象属性为驼峰式:

    "otherPlantCost":true
    

    但是您以小写形式访问它们:

    this.otherplantcost = costGroup.otherplantcost;
    

    你必须在驼峰式的情况下正确访问它们:

    this.otherplantcost = costGroup.otherPlantCost;
    

    【讨论】:

    • 是的,确实如此。谢谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    • 2019-10-09
    • 2015-12-16
    • 2016-03-20
    • 1970-01-01
    相关资源
    最近更新 更多