所以我在database.ts中写了一个Database
类,我希望有两个注入成员Document
和List
,它们都在同一个文件中。由于项目的组织,它们必须保留在同一个文件中。在不知疲倦地尝试之后,我无法创建document
的{{1}}和list
非空成员,或者通过Database
的构造函数注入这些类。错误包括Database
,Can't resolve all parameters for Database
等。这是我的尝试。
Can't get document of undefined
:
database.ts
班级(多次尝试)
Database
@Injectable()
export class Database {
constructor(@Inject(Document) public document:Document, @Inject(List) public list:List) {}
}
@Injectable()
export class Database {
public document:Document;
public list:List;
}
班级
Document
@Injectable()
class Document {
constructor(private events:Events, private db: AngularFireDatabase, public auth:Auth, public utility:Utility) {}
...
}
班级
List
我想找到一个解决方案,我可以在其中引用数据库类及其子类,如下所示:
@Injectable()
class List {
constructor(private events:Events, private db: AngularFireDatabase, public auth:Auth, public utility:Utility) {}
...
}
和this.database.document.function()
。
非常感谢你!
答案 0 :(得分:0)
根据Daniel W Strimpel的建议,我将Document
和List
作为导入添加到我的app.module.ts
中,如下所示:
import { Database, Document, List } from '../classes/database';
和将上述类注册为提供商。
我只是确保不会将import Document
或List
分别导入到使用这两个类的文件中,而是导入Database
以获取这两个类的所有功能。希望这会有所帮助。