首页 文章

Angular 2中提供的服务的桶文件中的导出顺序会改变DI行为

提问于
浏览
0

我花了一段时间才弄明白 . 我非常感谢你的解释 .

我将所有核心服务文件保存在一个公共文件夹中,然后将其添加到名为common.ts的桶文件中 .

我在app.module中导入这些服务并提供它们 .

看起来从桶文件导出的服务的顺序会对DI行为产生影响 .

当我按此顺序运行导出时

export { Core } from './core';
export { TestService } from './test-service';

我收到

无法解析OtherService的所有参数:(?)

OtherService是一个虚拟服务,不包含在贫瘠文件中,因为它是我测试的特定组件 . OtherService在app.module中提供,并在TestService之后列出(不确定是否重要,但这是非常奇怪的一天) .

如果我将common.ts桶文件中的导出顺序更改为

export { TestService } from './test-service';
export { Core } from './core';

OtherService会很好地收到TestService . 我能想到的唯一其他交互是将CoreService注入app.component,但它不依赖于TestService .

为什么更改桶文件中的导出顺序会修改Angular DI引擎的行为?如果你问我,这是疯狂的谈话 .

如果有必要,我可以尝试在线重现,但我会等待请求这样做 .

谢谢你的任何意见,迈克

1 回答

  • 0

    TL; DR似乎没有正式答案 .

    Angular 2 - Dependency Injection and Barreling

    这篇文章有一些见解,但最重要的是,它提到虽然出口订单确实很重要,但它并没有正式记录 .

    我会想到这就像我想要订购我的进口一样 .

相关问题