我的班级目前看起来像这样:
export class Patient {
constructor(public id: number, public name: string, public location: string, public bedId: number, public severity: string,
public trajectory: number, public vitalSigns: [GraphData[]], public latestReading: GraphData[]) {
}
public get combinedVSData(): Array<GraphData> {
let combinedVitalSigns: GraphData[] = [];
for (let data of this.vitalSigns) {
combinedVitalSigns.push(data[0]);
}
return combinedVitalSigns;
}
}
当我尝试拨打patient.combinedVSData
时,它会返回undefined
。我试图简单地让它返回一个结果相同的字符串,我已经在方法中创建了console.log()但我在控制台中看不到任何内容所以它根本没有被召唤。我做错了什么?
我在我的一个模板中调用方法,如下所示:
[results]="patientService.patientLevel3.combinedVSData"
我也在我的一个组件中调用它&#39;上课只是为了测试它:
onDrop(event: any){
let movedPatient: Patient = JSON.parse(event.dataTransfer.getData("patient"));
let from = parseInt(event.dataTransfer.getData("from"));
console.log(movedPatient.combinedVSData);
this.patientService.patientLevel3 = movedPatient;
this.patientService.removePatient(from, movedPatient.id);
}
}
两种情况都未定义。
编辑:我发现combineVSData不在对象上的原因是因为它在转换为JSON时显然会丢失它。我不知道可以做些什么。答案 0 :(得分:0)
更改import matplotlib.pyplot as plt
import numpy as np
data = np.arange(10000).reshape((100, 100))
plt.imsave("/tmp/foo.png", data, format="png", cmap="hot")
而不是public combinedVSData(): Array<GraphData>{}
数组{
答案 1 :(得分:0)
您将combineVSData定义为getter而不是方法。 我做了一个例子来向你展示getter和方法之间的区别
class Patient {
constructor(public id: number) {
}
// getter
public get getId(): number {
return this.id;
}
// method
public getIdMethod(): number {
return this.id;
}
}
const patient: Patient = new Patient(1);
console.log(patient.id); // 1
console.log(patient.getId); // 1
console.log(patient.getIdMethod); // function () { return this.id; }
console.log(patient.getIdMethod()); // 1
的console.log(患者);