gpt4 book ai didi

javascript - 在 Angular 中使用 `useFactory` 和 `deps:[ ]` 的正确方法是什么?

转载 作者:行者123 更新时间:2023-11-29 21:06:49 25 4
gpt4 key购买 nike

我想使用带有 useFactory 的简单提供程序,它也将使用 deps(学习目的)。

所以我创建了这个 plnkr :

//app.module.ts
...
const randomFactory = (car,engine) => { return new Calc(car,engine); };
...
providers: [Car,Engine,
{ provide: 'Random',
useFactory: randomFactory ,
deps: [Car, Engine],
},
]

Calc 是:

export class Calc
{
car:Car;
engine:Engine;

constructor ( Engine engine, Car car)
{
this.car=car;
this.engine=engine;
}
doSomething(){alert(this.car.getInfo() + this.engine.getInfo()}
}

现在我想将它用作注入(inject)对象,所以我这样做了:

export class AppComponent {
constructor(@Inject('Random') r) {
r.doSomething(); //should alert "car data + engine data" , but I get an error.
}
}

但我得到一个错误:car is not defined

问题:

我看不出使用 deps:[] 有任何意义我导入这些类的 Calc 类。

那么我该如何修复我的代码以正确使用 deps:[] 呢?

plnkr

最佳答案

vendor 配置正确。 Calc 构造函数中存在语法错误。参数的正确声明如下:

constructor (engine: Engine, car: Car){

这是更新后的插件:

https://plnkr.co/edit/HsECR0HEcIaPNbK6A7ZZ?p=preview

关于javascript - 在 Angular 中使用 `useFactory` 和 `deps:[ ]` 的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43651645/

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