Я создал компонент Angular 7, который можно наблюдать из службы Angular.Я использую его для привязки данных из удаленного сервиса к списку на одной из моих страниц.Это работает довольно хорошо.Тем не менее, я заметил одну вещь в асинхронном обратном вызове подписки, если я использую именованную функцию вместо анонимной, данные не привязываются к списку на моей странице.
Вот пример текущего анонимного обратного вызова, который работает
public constructor(private vendorApiService: VendorApiService,
private eventMessagingService: EventMessagingService) {
this.vendorApiService.getVendors().subscribe(
(data) => {
this._vendor = data;
this.dataSource = new MatTableDataSource<Vendor>(this._vendor);
this.dataSource.paginator = this.paginator;
});
this._displayedColumns = ['id', 'code', 'name', 'edit'];
}
Я хотел бы преобразовать его в это.Однако это не работает:
public constructor(private vendorApiService: VendorApiService,
private eventMessagingService: EventMessagingService) {
this.vendorApiService.getVendors().subscribe(
this.setup_vendor_list);
this._displayedColumns = ['id', 'code', 'name', 'edit'];
}
private setup_vendor_list(data) {
this._vendor = data;
this.dataSource = new MatTableDataSource<Vendor>(this._vendor);
this.dataSource.paginator = this.paginator;
}
На основании того, что я знаю о Javascript, это должно работать.Однако, поскольку это машинописный текст, может быть какое-то особое условие, о котором я не знаю, которое влияет на способ обработки именованных и анонимных обратных вызовов.
Если вы можете объяснить разницу, пожалуйста, сделайте это.