我在Angular工作,并且遇到以下情况:
my.service.ts 具有此类:
export class MyClass {
MyList: string[] = [];
MyString: string = '';
createString(): void {
this.MyList.forEach(s => {
this.MyString += s + ', ';
});
}
}
my.component.ts 这样称呼它:
myData: MyClass[] = [];
this.myService.getMyData().subscribe(res => {
myData = res;
if (myData.length > 0) {
this.myData.forEach(x => x.createString());
}
});
VS代码将createString
函数识别为MyClass
的方法,但是我仍然收到错误消息:
错误TypeError:x.createString不是函数
有什么解释吗?
EDIT :数据来自后端,而后端模型没有此方法。也许是问题所在?
答案 0 :(得分:3)
来自服务器的对象将只是一个简单的对象,而不是类MyClass
的实例。您可以创建MyClass
的实例,并将服务器对象中的值分配给该类的实例:
this.myService.getMyData().subscribe(res => {
myData = res.map(o => Object.assign(new MyClass(), o));
if (myData.length > 0) {
this.myData.forEach(x => x.createString());
}
});