gpt4 book ai didi

dart - 使用 angular2 在 Dart 单例中注入(inject)

转载 作者:行者123 更新时间:2023-12-03 02:57:12 24 4
gpt4 key购买 nike

嗨有这个单例类:

class Singleton {
static final Singleton _singleton = new Singleton._internal();

factory Singleton() {
return _singleton;
}

Singleton._internal();
}

我想以这种方式在我的类(class)中注入(inject)一个记录器:
class Singleton {
static final Singleton _singleton = new Singleton._internal();

factory Singleton( @Inject(LoggerService) this.log) {
return _singleton;
}

Singleton._internal();
}

但似乎工厂不支持注入(inject)。

最佳答案

在我看来,这是 Angular 中的错误方法。 Angular DI 自己提供单例。

class Singleton {
final LoggerService log;

Singleton(this.log);
}
bootstrap(AppComponent, [LoggerService, Singleton]);

应该做你想做的。只要不加 Singleton对于其他地方的提供者(例如在组件上),Angular2 将始终注入(inject)相同的实例。

如果您仍想保持上述模式,请使用
bootstrap(AppComponent, [
LoggerService,
provide(Singleton,
useFactory: (log) => new Singleton(log),
deps: [LoggerService])
]);

关于dart - 使用 angular2 在 Dart 单例中注入(inject),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35869321/

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