gpt4 book ai didi

Angular 2 - 将构造函数中的依赖注入(inject)与其他参数混合

转载 作者:太空狗 更新时间:2023-10-29 16:57:29 26 4
gpt4 key购买 nike

在下面的类中,我想抽象掉 http 依赖项,这样 Angular 2 使用正常的依赖项注入(inject)来注入(inject) http 对象。

import { Http } from '@angular/http';

class MyCollectionView<T> extends CollectionView {
constructor(private endpoint: string, private http: Http) {
}

// ... implemenation of class ...
}

我想按如下方式使用该类:

class MyClass {
private collection: MyCollectionView<ITestRow>;

constructor() {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint');
}
}

要在我当前的实现中实例化,我必须编写

class MyClass {
private collection: MyCollectionView<ITestRow>;

constructor(private http: Http) {
this.collection = new MyCollectionView<ITestRow>('/some/endpoint', http);
}
}

据我所知,不可能在构造函数中组合 ng2 依赖注入(inject)和自定义参数。我想我需要某种工厂函数来处理依赖注入(inject)部分,但到目前为止我还没有运气。特别是因为该类还使用泛型。我可以在此处遵循任何最佳做法吗?

请注意,在单元测试中,仍然可以使用 MockBackend 解决 DI相反。

我找到了 this question在 stackoverflow 上,但它是 most upvoted answer不能使用恕我直言,因为参数必须是动态的。

最佳答案

依赖注入(inject) (DI) 仅适用于 DI 创建的类。如果您使用 new Xxx() 创建类,则不会发生 DI。

如果实例是由 DI 创建的,则不能传递自己的参数。
您需要为这些参数创建提供程序,以便 DI 能够注入(inject)它们。

你的做法是正确的。

关于Angular 2 - 将构造函数中的依赖注入(inject)与其他参数混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40849072/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com