如何解决如何在Angular组件中的服务类内部调用函数
我在服务文件夹中有DropdownService
服务类,在共享文件夹中有DropdownComponent
服务类。我想在我的getData()
服务类中调用DropdownComponent
方法
这是我的DropdownService类。
@Injectable({
providedIn: 'root'
})
export class DropdownService {
constructor(private serviceHandler: ServiceHandler) { }
getData() {
FilterCriterias.isdisableFilters = true;
this.serviceHandler.getPrices([],[]).subscribe(prices => {
console.log(prices[0].code);
const priceList = [];
for (let i = 0; i < prices.length; i++) {
const price = prices[i];
if (i !== 0) {
priceList.push({ code: price.code,name: price.name,isSelected: false,isDefault: false });
} else {
priceList.push({ code: price.code,isSelected: true,isDefault: true });
}
}
FilterCriterias.priceList = priceList;
console.log(FilterCriterias.priceList);
});
}
}
这是我的下拉模块文件。我已经将DropdownService
添加到DropdowntModule文件中。
@NgModule({
declarations: [DropdownComponent],imports: [
CommonModule
],providers: [DropdownService],exports: [
DropdownComponent
]
})
export class DropdowntModule { }
这是我的DropdownComponent.ts
文件
constructor(private dropdownServiceHandler: DropdownService) { }
ngOnInit() {
this.dropdownServiceHandler.getData();
}
但是它显示了这样的错误 TypeError:无法读取未定义的属性'getData()' 在DropdownComponent.ngOnInit(dropdown.component.ts:17)
解决方法
尝试将DropdownService的providedIn: 'root'
更改为providedIn: DropdownModule
来源:https://angular.io/guide/providers#providedin-and-ngmodules
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。