Angular - 从组件 returns 未定义的服务调用方法
Angular - Calling method on service from component returns undefined
我在服务文件中有这个服务,它是一个 http 调用。
export class BackendServices {
addons: IAddons[];
constructor(private http: HttpClient) {
this.getWorkOrders();
}
getAddons() {
this.http.get<IAddons>(this.BASE_URL + '/addons/')
.subscribe((data: any) => {
this.addons = data;
});
}
组成部分
然后从我的主要组件我有一个调用模态对话框的按钮。这是主要组件的代码:
export class OrdersComponent {
openAddonsDialog() {
let dialogRef = this.pickAddonsDialog.open(PickaddonsComponent);
}
}
然后我从对话框的构造函数调用服务上的 getAddons 方法。
我只是想知道我们如何让模式对话框仅在插件 属性 从 http 调用接收到数据时才打开。
export class PickaddonsComponent implements OnInit {
constructor(public bs: BackendServices) {
this.bs.getAddons();
}
但它说 this.service.getAddons() 未定义。在 Whosebug 上阅读了很多关于此的内容,从不同的帖子中尝试了很多步骤,但 none 到目前为止帮助了我。
似乎已初始化 BackendService
的属性 addons
未定义。这是真的。因为只有在调用方法getAddons
.
时才会设置
试试这个:
export class BackendServices {
addons: IAddons[] = [];
constructor(private http: HttpClient) {
this.getWorkOrders();
}
getAddons() {
return this.http.get<IAddons>(this.BASE_URL + '/addons/')
.subscribe((data: any) => {
this.addons = data;
});
}
正在替换
addons: IAddons[];
和
addons: IAddons[] = [];
我在服务文件中有这个服务,它是一个 http 调用。
export class BackendServices {
addons: IAddons[];
constructor(private http: HttpClient) {
this.getWorkOrders();
}
getAddons() {
this.http.get<IAddons>(this.BASE_URL + '/addons/')
.subscribe((data: any) => {
this.addons = data;
});
}
组成部分 然后从我的主要组件我有一个调用模态对话框的按钮。这是主要组件的代码:
export class OrdersComponent {
openAddonsDialog() {
let dialogRef = this.pickAddonsDialog.open(PickaddonsComponent);
}
}
然后我从对话框的构造函数调用服务上的 getAddons 方法。 我只是想知道我们如何让模式对话框仅在插件 属性 从 http 调用接收到数据时才打开。
export class PickaddonsComponent implements OnInit {
constructor(public bs: BackendServices) {
this.bs.getAddons();
}
但它说 this.service.getAddons() 未定义。在 Whosebug 上阅读了很多关于此的内容,从不同的帖子中尝试了很多步骤,但 none 到目前为止帮助了我。
似乎已初始化 BackendService
的属性 addons
未定义。这是真的。因为只有在调用方法getAddons
.
试试这个:
export class BackendServices {
addons: IAddons[] = [];
constructor(private http: HttpClient) {
this.getWorkOrders();
}
getAddons() {
return this.http.get<IAddons>(this.BASE_URL + '/addons/')
.subscribe((data: any) => {
this.addons = data;
});
}
正在替换
addons: IAddons[];
和
addons: IAddons[] = [];