我有一个像下面这样的类,它具有一个称为test的函数。
export class Vehicle{
plate:String;
test(){
console.log("test");
}
}
我正在从服务器返回车辆数据并访问Test功能,但是却收到一条错误消息,提示“功能测试未定义”。
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
vehicle.test(); //test function here is undefined.
});
我知道数据会以某种方式转换为Vehicle类型的对象。但是我失去了对其属性的访问(在本例中为测试功能)。 在这种情况下,有什么方法可以访问测试功能?
答案 0 :(得分:1)
似乎您没有将来自后端的json
车辆数据转换为Vehicle
对象
export class Vehicle{
plate:String;
constructor(params: Vehicle) {
Object.assign(this, params);
}
test(){
console.log("test");
}
}
现在您可以通过此代码创建Vehicle
的实例
const instance = new Vehicle({plate:'xxx'})
,您可以使用.map(item => return new Vehicle(item))
答案 1 :(得分:0)
公开功能
export class Vehicle{
plate:String;
public test(){
console.log("test");
}
}
将该类导入文件中要使用的位置:
import { Vehicle } from 'path_to_Vehicle.ts'
为Vehicle类声明一个变量;
VehicleClass: Vehicle = new Vehicle();
现在您可以访问Vehicle Class实现的方法test(),如下所示:
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
this.VehicleClass.test();
});