我正在使用Angular 6处理数组。我有一个数组和一个模型。
数组:
let array = [
{
id: 1,
value: "Some Value",
description: "Some Description"
},
{
id: 2,
value: "Some Value",
description: "Some Description"
},
{
id: 3,
value: "Some Value",
description: "Some Description"
},
]
型号:
export class Data{
index: number;
id: number;
value: string;
description: string;
constructor(data){
this.index = null;
this.id = data.id;
this.value = data.value;
this.description = data.description;
}
}
如您所见,模型中有一个名为“ index”的参数。从该数组中选择一项时,我将使用此方法创建一个新对象。
selectItem(index, data){
let selectedItem = new Data(data);
console.log(selectedItem);
}
预期结果是:
{
id: 1,
value: "Some Value",
description: "Some Description"
}
在这种情况下,我无法将索引值添加到新创建的对象中,因为数据对象没有此参数。
这就是为什么我使用
selectItem(index, data){
let selectedItem = new Data({
index = index,
id = data.id,
value = data.value,
description = data.description
})
}
我的问题是:在使用模型创建新对象时,是否可以添加其他参数。我需要这样的东西。
selectItem(index, data){
let selectedItem = new Data({data}).index = index
}
答案 0 :(得分:3)
我会为您的构造函数创建一个可选参数。
export class Data{
index: number | null;
id: number;
value: string;
description: string;
constructor(data, index: number | null = null){
this.index = index;
this.id = data.id;
this.value = data.value;
this.description = data.description;
}
}
然后您就可以完全根据需要进行操作
selectItem(index, data){
let selectedItem = new Data(data, index);
}
但是如果需要,也可以创建没有它的对象
let selectedItem = new Data(data);
答案 1 :(得分:0)
您不能在Data类中创建新的对象Data。您可以尝试以下方法:
export interface IData {
index: number;
id:number;
value:string;
description:string
}
selectItem(index, data):IData{
let result:IData = {
index: index,
id: this.id,
value: this.value,
description: this.description
};
return result;
}