こんにちは私がエラーを構築するサービスを追加すると、私のwebアプリケーションにfirestoreを実装しようとしています:
NullInjectorError:TesteventServiceのプロバイダーがありません!
Angular 5、angularfire2/firestoreおよびTypeScript 2.7.1を使用しています。
testevent.service.ts
import { Injectable } from '@angular/core';
import { AngularFirestore } from 'angularfire2/firestore'
@Injectable()
export class TesteventService {
constructor(private afs: AngularFirestore) { }
addEvent(eventData){
this.afs.collection('testevent').add(eventData).then(() => {
console.log('Done');
})
}
getEvent(){
return this.afs.collection('testevent', ref => ref.orderBy('id')).valueChanges()
}
}
component.ts
import { Component, OnInit } from '@angular/core';
import { TesteventService } from '../../providers/testevent.service';
import { AngularFirestore } from 'angularfire2/firestore';
export class CsvImportComponent implements OnInit {
data_rows = []
constructor(private event: TesteventService){})
TesteventSeriviceからイベントを追加すると、何も実行されていないときにエラーが発生します。
App.module.tsのインポートの下のプロバイダーの下にTesteventServiceを追加する必要があります
providers: [
TesteventService
]
-でサービスクラスに注釈を付けます
@Injectable({providedIn: 'root'})サービス自体は、CLIが生成したクラスであり、@ Injectable()で装飾されています。デフォルトでは、このデコレーターには、サービスのプロバイダーを作成するprovidedInプロパティがあります。この場合、providedIn: 'root'は、Angularがルートインジェクターでサービスを提供する必要があることを指定します。