gpt4 book ai didi

angular - 如何在 Angular Dart 2 中使用 'useValue' 的提供程序

转载 作者:行者123 更新时间:2023-12-03 03:43:25 26 4
gpt4 key购买 nike

我需要在 Angular 2 中为 dart 添加一个“外部”对象到依赖注入(inject)。 “外部”的意思是,它的构造函数上没有 @Injectable 注释,因为它来自外部库。

所以我想,我可以将此依赖项添加到 @Component 注释中的 angular 2 提供程序列表中,如下所示:

@Component(
selector: "app-component",
templateUrl: "app_component.html",
directives: const [AddButton, SettingsButton],
providers: const [const Provider(EventBus, useValue: new EventBus())]
)

问题是这个列表必须是一个 const 表达式。因此,Provider 必须是 const 并且 `new EventBus()' 不支持作为非常量表达式。

搜索文档没有产生结果。
我该怎么做?

最佳答案

您可以在 pubspec.yaml 中注册此类类(class)在 Angular2 变压器部分:

transformers:
- sass
- angular2:
platform_directives:
- 'package:angular2/common.dart#COMMON_DIRECTIVES'
platform_pipes:
- 'package:angular2/common.dart#COMMON_PIPES'
entry_points:
- web/index.dart
resolved_identifiers:
BrowserClient: 'package:http/browser_client.dart'
BaseClient: 'package:http/http.dart'

上面的例子展示了如何制作 BrowserClientBaseClient来自 http Angulars DI 可用的包

然后你可以像这样提供它
@Component(
selector: "app-component",
templateUrl: "app_component.html",
directives: const [AddButton, SettingsButton],
providers: const [EventBus]
)

或者
eventBusFactory() => new EventBus();

@Component(
selector: "app-component",
templateUrl: "app_component.html",
directives: const [AddButton, SettingsButton],
providers: const [const Provider(EventBus, useFactory: eventBusFactory)]
)

关于angular - 如何在 Angular Dart 2 中使用 'useValue' 的提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39818262/

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