Angular2 / Typescript - 属性名称首字母从大写字母变为大写

时间:2017-04-20 12:22:39

标签: angular typescript

我是Angular2 / Typescript中的菜鸟,我正在编写我的第一个应用程序。

我有一个这个简单类的数组:

export class OffertRegion {

    public idOffert: number;
    public idOffertRegion: number;
    public Region: string;
    public intOrder: number;

    constructor(values: Object = {}) {
        Object.assign(this, values);
    }
}

这是在用户点击html组件页面中的按钮后将新的OffertRegion类推送到数组的函数:

do_addRegion()
  {
    var r = new OffertRegion();
    r.Region = this.FormOffertDetail.value.RegionName;
    alert(r.Region);
    r.idOffert = this.offert.idOffert;

    this.offert.Regions.push(r);
    console.log(this.offert.Regions);
  }

如果我使用 3个区域加载示例并执行do_addRegion(),则记录的 this.offert.Regions 结果为:

Console.Log输出

Console.Log result

正如您所看到的,OffertRegion类的预览项具有属性Region,其中第一个字符为小写。 相反,新项目(位置4)具有第一个字符为大写的属性...

当我在html模板中渲染数据时,这会给我带来一些麻烦。

为什么会这样?以及如何以正确的方式解决它?

由于

1 个答案:

答案 0 :(得分:1)

我只能从你提供的稀疏信息中猜出来。我假设前三个对象是从服务器加载的,它使用以小写字母开头的名称。它们以某种方式使它进入数组而不符合Typescript类型。然后运行do_addRegion,它创建一个只有两个属性的实例,其中一个属性的名称以大写字母开头。

您的Typescript类型有点奇怪:它有三个属性,名称以小写字母开头,奇数属性名为Region。用小写名称命名它会更加一致:

    public region: string;

要深入研究问题,您应该显示加载或创建数组中前三个条目的代码。