【发布时间】:2017-10-19 09:33:43
【问题描述】:
我的目标是将数据从 Angular 组件发送到服务并使用服务方法来处理它。示例:
export class SomeComponent {
public data: Array<any> = MyData;
public constructor(private myService: MyService) {
this.myService.data = this.data;
}
}
和服务:
@Injectable()
export class TablePageService {
public data: Array<any>;
constructor() {
console.log(this.data);
// undefined
}
}
获取数据未定义。如何让它发挥作用?
【问题讨论】:
-
服务构造函数在您将其注入组件时已经运行 - 因为您没有初始化它,
data那时是未定义的。 -
在调用对象的方法之前,必须先构造它。因此,您的构造函数被调用并且数据未定义。然后访问成员并修改变量,但构造函数已经被调用。
-
我该如何解决这个问题?
-
我建议您使用方法在组件和服务之间进行通信。还可以使用订阅来确保您在可用时收到数据。在这里查看文档,非常有用:angular.io/docs/ts/latest/cookbook/…
-
这是 Typescript 而不是 JavaScript,或者?
标签: javascript angular typescript angular-services angular-components