我正在尝试在模型中添加一些元素。我不知道Angular的工作原理,所以我尝试.add
型号
export class Profile {
id: number;
nombre: descripcion;
}
TS
perfilesTodos: Profile[];
response["body"].forEach((index: number) => {
if (response["body"] == 1) {
this.perfilesTodos.push(index, "Arson");
} else if (response["body"] == 2) {
this.perfilesTodos.push(index, "Administrador de entidad");
} else if (response["body"] == 3) {
this.perfilesTodos.push(index, "Administrador de grupo");
} else if (response["body"] == 4) {
this.perfilesTodos.push(index, "Gestor");
} else if (response["body"] == 5) {
this.perfilesTodos.push(index, "Instalador");
}
});
返回
无法将类型为“ number”的参数分配给类型为的参数 “个人资料”
有人知道如何使用模型在数组中添加元素吗?
答案 0 :(得分:0)
您需要推送Profile类 shape 的对象库或peofile类的实例
perfilesTodos: Profile[] = []; // ? array default value
response["body"].forEach((index: number) => {
if (response["body"] == 1) {
this.perfilesTodos.push({ id: index, nombre : "Arson");
} else if (response["body"] == 2) {
this.perfilesTodos.push({ id: index, nombre :"Administrador de entidad"});
} else if (response["body"] == 3) {
this.perfilesTodos.push({ id : index, nombre : "Administrador de grupo" });
} else if (response["body"] == 4) {
this.perfilesTodos.push({ id :index, nombre :"Gestor"});
} else if (response["body"] == 5) {
this.perfilesTodos.push({ id: index, nombre :"Instalador"});
}
})
当您将perfilesTodos标记为配置文件数组时,这表示所有数组 项目必须是该类型形状的基础,因此您需要推动道德 轮廓类或对象具有相同的属性
答案 1 :(得分:0)
理解push
接受varargs参数无疑会有所帮助。因此,下面的代码(就像您在代码中所做的那样)会将许多元素推送到列表中:
list.push(1,2,3,4,5);
所以您需要做的是向配置文件列表中添加Profile
this.perfilesTodos.push({ id: index, nombre : "Arson"});
现在要省略所有这些if else
语句,就可以创建一个简单的字符串数组
const data: string[] = ['Arson', 'Administrador de entidad', 'Administrador de grupo', 'Gestor', 'Instalador']
除掉其他所有内容,然后简单地进行
perfilesTodos: Profile[] = [];
response["body"].forEach((id: number) => {
this.perfilesTodos.push({id, nombre: data[ response["body"] - 1 ]});
});
当然,您还必须更改nombre
的类型,因为没有description
这样的东西-它是字符串。
看起来仍然很奇怪的是,您首先循环使用`response ['body'],因为它是一个数组,然后尝试对一个数字进行相等性检查...