我刚刚在 Angular 应用程序中创建了一个全新的服务,并使用providedIn: 'root' 使其在应用程序中的任何位置都可用。
但是当我导入它并尝试使用它时,它说它的方法未定义。
这是代码
服务.ts
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class Service {
public publicMethod() {}
}
组件.ts
import { Service } from 'path/to/service';
import { Component } from '@angular/core';
import { AccountService } from 'app/core';
@Component({
selector: 'footer',
templateUrl: './footer.component.html',
})
export class FooterComponent {
constructor(private readonly service: Service) {
this.service.publicMethod // undefined
}
}
以相同方式导入的其他服务运行良好。 什么可能导致此问题?
最佳答案
尝试在 core.module 中添加您想要注入(inject)的服务:[ ] 并在您的 AccountService 中将 @Injectable({providedIn: 'root' }) 替换为 @Injectable()
关于javascript - 带有providedIn : 'root' is an empty object的 Angular 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71959595/