Angular2 DI:注入全局扩展服务(不能解析所有参数)
我刚刚使用AngularFire2将我的Ionic应用程序代码库升级到ng2版本。在代码库中,我有一个名为FirebaseService的全局服务,它扩展了AngularFireAngular2 DI:注入全局扩展服务(不能解析所有参数),angular,firebase,ionic2,angularfire2,Angular,Firebase,Ionic2,Angularfire2,我刚刚使用AngularFire2将我的Ionic应用程序代码库升级到ng2版本。在代码库中,我有一个名为FirebaseService的全局服务,它扩展了AngularFire @Injectable() export class FirebaseService extends AngularFire { constructor(firebaseConfig: string, auth: AngularFireAuth, database: FirebaseDatabase) {
@Injectable()
export class FirebaseService extends AngularFire {
constructor(firebaseConfig: string, auth: AngularFireAuth, database: FirebaseDatabase) {
super(firebaseConfig, auth, database);
}
...
}
在我的app.component.ts
中,我将FirebaseService包含在providers
数组中(我尝试了FirebaseService
和{provide:AngularFire,useClass:FirebaseService}
)。但是,当我运行应用程序时,会出现以下错误:
Uncaught Error: Can't resolve all parameters for DiscoverPage: (NavController, GlobalService, ?, Events).
DiscoverPage
的构造函数如下:
@Component({
selector: 'catalogue-discover',
templateUrl: 'catalogue-discover.html'
})
export class DiscoverPage {
constructor(private nav: NavController,
private global: GlobalService,
public firebase: FirebaseService,
private events: Events) {
}
...
}
“?”指向FirebaseService——我感觉我没有正确执行DI。关于如何继续的任何建议?您应该将
@Injectable()
装饰器添加到您的服务中。您应该将@Injectable()
装饰器添加到您的服务中。可能存在两个问题:
Injectable
// file a.ts
export ClassA {}
// file b.ts
import { ClassA } from './';
export ClassB {
// using ClassA somehow
}
// file index.ts
export * from './a';
export * from './b';
可能存在两个问题:
Injectable
// file a.ts
export ClassA {}
// file b.ts
import { ClassA } from './';
export ClassB {
// using ClassA somehow
}
// file index.ts
export * from './a';
export * from './b';
请发布
DiscoverPage的代码(类声明和构造函数)
请发布DiscoverPage的代码(类声明和构造函数)
对不起,忘了把它放在代码段中<代码>@Injectable()肯定在那里,因为它在我升级到Angular2版本之前就已经工作了。哦,好吧,解决方案并没有那么简单;)对不起,忘了把它放在代码段中<代码>@Injectable()肯定在那里,因为它在我升级到Angular2版本之前就已经工作了。哦,好吧,解决方案并没有那么简单;)