【问题标题】:Angular 7 Singleton Service: No provider for Service [duplicate]Angular 7 Singleton Service:没有服务提供者[重复]
【发布时间】:2019-09-20 21:08:12
【问题描述】:

我正在开发一个基于 Angular 7 的 Ionic 4 应用程序,并希望创建一个服务,作为单例实例提供给整个应用程序。

根据最新版本的 Angular 7 文档,您无需在 app.module.ts 的 providers 部分中指定服务,您可以轻松地使用 providedIn: 'root' 注释对服务进行注释,然后注入它在组件/页面中。

服务文件:

import { Injectable } from '@angular/core';
import { Storage } from '@ionic/storage';

@Injectable({
  providedIn: 'root'
})
export class StorageService {

  constructor(public storage: Storage) {}
  ...
}

然后我像这样将它注入到我的组件构造函数中:

import { StorageService } from '../services/storage.service';

@Component({
  selector: 'app-add',
  templateUrl: './add.page.html',
  styleUrls: ['./add.page.scss'],
})
export class AddPage implements OnInit {

  constructor(private storage: StorageService) { }

  ngOnInit() {}
  ...
}

但是当我启动我的应用时,我得到了这个错误:

Uncaught (in promise): Error: StaticInjectorError(AppModule)[Storage]: 
  StaticInjectorError(Platform: core)[Storage]: 
    NullInjectorError: No provider for Storage!

【问题讨论】:

    标签: javascript angular ionic-framework ionic4


    【解决方案1】:

    在主模块中,将 IonicStorageModule 替换为 IonicStorageModule.forRoot()

     imports: [
          IonicStorageModule.forRoot() 
     ]
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2019-10-21
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 2018-01-16
      • 2018-07-05
      • 2019-05-08
      • 2019-11-23
      相关资源
      最近更新 更多