我是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 结果为:
正如您所看到的,OffertRegion类的预览项具有属性Region,其中第一个字符为小写。 相反,新项目(位置4)具有第一个字符为大写的属性...
当我在html模板中渲染数据时,这会给我带来一些麻烦。
为什么会这样?以及如何以正确的方式解决它?
由于
答案 0 :(得分:1)
我只能从你提供的稀疏信息中猜出来。我假设前三个对象是从服务器加载的,它使用以小写字母开头的名称。它们以某种方式使它进入数组而不符合Typescript类型。然后运行do_addRegion
,它创建一个只有两个属性的实例,其中一个属性的名称以大写字母开头。
您的Typescript类型有点奇怪:它有三个属性,名称以小写字母开头,奇数属性名为Region
。用小写名称命名它会更加一致:
public region: string;
要深入研究问题,您应该显示加载或创建数组中前三个条目的代码。