错误:无法解析FirebaseDataService的所有参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:无法解析FirebaseDataService的所有参数相关的知识,希望对你有一定的参考价值。
我一直试图通过以下设置抽象和隐藏我的DataService的实现:
DataService的:
import { Observable } from 'rxjs/Observable';
export abstract class DataService {
abstract getMyData(): Observable<any>;
}
FirebaseDataService:
import { AngularFireDatabase } from 'angularfire2/database';
import { Observable } from 'rxjs/Observable';
import { DataService } from './data.service';
import { MyData } from '../mydata/mydata.model';
export class FirebaseDataService extends DataService {
constructor(private db: AngularFireDatabase) {
super();
}
getMyData(): Observable<any> {
return this.db.list(MyData.name).valueChanges();
}
}
DataModule中:
import { NgModule } from '@angular/core';
import { AngularFireModule } from 'angularfire2';
import { AngularFireDatabaseModule } from 'angularfire2/database';
import { DataService } from './data.service';
import { FirebaseDataService } from './firebase-data.service';
import { environment } from '../../environments/environment';
@NgModule({
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFireDatabaseModule
],
providers: [
{ provide: DataService, useClass: FirebaseDataService }
]
})
export class DataModule { }
在另一个模块中,我导入DataModule
并调用DataService
方法,如下所示:
@Injectable()
export class MyDataEffects {
@Effect()
getMyData = this.actions$
.ofType(MyDataActions.GET_MYDATA)
.switchMap((action: MyDataActions.GetMyData) => this.db.getMyData())
.map( mydata => ({ type: MyDataActions.SET_MYDATA, payload: mydata }));
constructor(
private actions$: Actions,
private db: DataService,
private store: Store<fromMyData.FeatureState>) { }
}
运行此代码时,浏览器会记录“无法解析FirebaseDataService的所有参数”错误消息。这听起来像是依赖注入问题,但我无法弄清楚确切的问题是什么。
这是一个Angular bug还是我错过了什么?任何帮助表示赞赏。
答案
改变这个 -
import { AngularFireDatabase } from 'angularfire2/database';
import { Observable } from 'rxjs/Observable';
import { DataService } from './data.service';
import { MyData } from '../mydata/mydata.model';
export class FirebaseDataService extends DataService
至
import { AngularFireDatabase } from 'angularfire2/database';
import { Observable } from 'rxjs/Observable';
import {Injectable} from '@angular/core';
import { DataService } from './data.service';
import { MyData } from '../mydata/mydata.model';
@Injectable()
export class FirebaseDataService extends DataService
以上是关于错误:无法解析FirebaseDataService的所有参数的主要内容,如果未能解决你的问题,请参考以下文章
无法解析配置 ':classpath' 的所有工件。无法解析 com.android.tools.build:gradle:3.5.3。显示错误