Class angular 中的订阅内未定义函数
Class function is undefined inside subscribe in angular
我有一个像下面这样的 class,它有一个名为 test 的函数。
export class Vehicle{
plate:String;
test(){
console.log("test");
}
}
我正在从服务器返回车辆数据并访问测试功能,但是我收到一条错误消息 "Function test is undefined"。
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
vehicle.test(); //test function here is undefined.
});
我了解数据以某种方式转换为类型为 Vehicle 的对象。但我正在失去对其属性的访问权限(在本例中为测试功能)。
在这种情况下有什么方法可以访问测试功能吗?
您似乎没有将来自后端的 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))
在您的服务中执行相同的操作
使public函数
export class Vehicle{
plate:String;
public test(){
console.log("test");
}
}
将 class 导入到您要使用它的文件中:
import { Vehicle } from 'path_to_Vehicle.ts'
为class车辆声明一个变量;
VehicleClass: Vehicle = new Vehicle();
现在您可以访问 Vehicle Class 的方法 test() 实现如下:
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
this.VehicleClass.test();
});
我有一个像下面这样的 class,它有一个名为 test 的函数。
export class Vehicle{
plate:String;
test(){
console.log("test");
}
}
我正在从服务器返回车辆数据并访问测试功能,但是我收到一条错误消息 "Function test is undefined"。
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
vehicle.test(); //test function here is undefined.
});
我了解数据以某种方式转换为类型为 Vehicle 的对象。但我正在失去对其属性的访问权限(在本例中为测试功能)。 在这种情况下有什么方法可以访问测试功能吗?
您似乎没有将来自后端的 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))
使public函数
export class Vehicle{
plate:String;
public test(){
console.log("test");
}
}
将 class 导入到您要使用它的文件中:
import { Vehicle } from 'path_to_Vehicle.ts'
为class车辆声明一个变量;
VehicleClass: Vehicle = new Vehicle();
现在您可以访问 Vehicle Class 的方法 test() 实现如下:
this.vehicleService.get(this.vehicleId).subscribe((vehicle:Vehicle)=>{
this.VehicleClass.test();
});