【发布时间】:2018-01-18 18:33:59
【问题描述】:
我正在尝试以角度将数据从一个组件传递到另一个组件,第二个组件显示为材质对话框。在传递对象之前,它的行为符合预期,但是当我传递它时,除了第一个属性之外,我失去了对所有内容的访问权限。
及格班:
displayDetail(i) {
let dialogRef = this.dialog.open(PartDetailComponent, {
width: '90%',
data: { part: this.partList.find(x => x.partNumber = i) , id: i }
});
dialogRef.afterClosed().subscribe(result => {
console.log('The dialog was closed');
});
}
接收类
constructor(public dialogRef: MatDialogRef<PartDetailComponent>,
@Inject(MAT_DIALOG_DATA) public data: Part) {
if (data == undefined) {
console.log("Bad data. Closing modal.")
}
else {
this.part = data;
console.log(data); // object now only has id
console.log(this.part); // identical to data
console.log(this.part.id); // displays id
console.log(this.part.description); // undefined
console.log(data.description); // undefined
}
}
我是 Angular 的新手,并且有点像打字稿的新手,但这似乎不应该发生。到底是怎么回事?
编辑:如果 Part 类是相关的:
export class Part {
id: number; // assuming there's an ID unique of partNumber or sku
title: string;
partNumber: number;
description: string;
leadTime: number;
weight: number;
sku: number;
pictureUrl: string;
inventory: number;
inStock: boolean;
isOrderable: boolean;
instructions: string;
}
【问题讨论】:
-
data.part.description呢? -
无法识别 data.part 存在,因为我明确告诉它期望一个 part 对象而不是具有 part 属性的对象。看我的回答
标签: typescript angular-material2 angular5