angular - 无法解析 UserService 的所有参数:(?)
问题描述
该应用程序编译得非常好,但在控制台中我得到了上述错误。现在让我发布一些代码。
user.service.ts
mport { Injectable } from '@angular/core';
import { User } from '../models/user.model';
import { IUserService } from '../interfaces/user.interface';
import { Observable } from 'rxjs';
@Injectable()
export class UserService implements IUserService {
constructor(
private strategy: any
) { }
get currentUser$(): Observable<User> {
return this.strategy.currentUser$;
}
public setStrategy(val: any): void {
this.strategy = val;
}
public create(user: User): Observable<User> {
return this.strategy.create(user);
}
public retrieveOne(id: number): Observable<User> {
return this.strategy.retrieveOne(id);
}
// other CRUD methods
}
这个存在于CoreModule
应用程序的模块中,模块看起来是这样的:
core.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AuthModule } from './auth/auth.module';
import { UserService } from './user/services/user.service';
@NgModule({
declarations: [],
imports: [
CommonModule,
AuthModule,
],
exports: [
AuthModule,
],
providers: [UserService]
})
export class CoreModule { }
我想尝试一下已经编写的内容并决定在应用程序组件中执行此操作,它的 ts 文件有一些方法和一个构造函数,我在其中注入UserService
.
constructor(
private userService: UserService
) {
this.userService.setStrategy(new FirebaseUserStrategy());
}
我的应用程序模块只是导入core.module.ts
.
解决方案
您可以使用@Optional 标记您的策略:
constructor(
@Optional private strategy: any
) { }
推荐阅读
- c# - Update void doesnt work for me, what am I missing?
- node.js - 将 gsap 节点模块与 Meteor 一起使用
- mysql - sql连接来自同一个表的值
- android - Save a text file from a Flutter Android app that can be accessed by user
- reactjs - 列表数据更改时,材质 UI 列表滚动不会重置
- python - Kivy Buildozer VM - Can't build apk - Build failed: python-for-android
- node.js - 在 cloudinary 依赖 npm install 之后找不到模块“cloudinary”的声明文件
- r - 如何在 ggplot2 qplot() 和 geom_() 中自动完成?
- .net - Entity framework throws NullReferenceException
- windows - How to use windows credentials to authenticate a connection to GitHub Enterprise repositories