javascript - 带有providedIn : 'root' is an empty object的 Angular 服务

标签 javascript angular

我刚刚在 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/

相关文章:

javascript - 获取子iframe中父页面的隐藏变量数据

angular - 当验证器设置为 minLength 时空字段控制有效

javascript - 在 Meteor.js 中, stub 的数据库写入是否总是在 stub 完成后立即完成?

javascript - updateOne 删除我的数据

javascript - 使用 js/jquery 的动态脚本元素放置

node.js - 来自客户端的 Angular 通用转发 IP,用于所有 SSR API 调用

Angular 2格式数据为空

javascript - CSS图像被子

angular - 在 Angular 2 中单击时访问复选框值

node.js - firebase 云功能发布请求正文