如图所示的三个模块......
|Elements| and |myForms| are imported into |App|.
文件夹结构
- 应用
| --Elements角度模块(其中包含ConfigService)。
| --App角度模块(角度导入元素和myForms(NPM PKG))
元素模块使用 forRoot 导出 ConfigService 。
export class ElementsModule {
static forRoot(): ModuleWithProviders {
return {
ngModule: ElementsModule,
providers: [ConfigService]
};
}
}
应用模块导入元素和 myForms 模块。
import { Elements } from './local-dir';
import { myForms } from 'NPM PACKAGE';
@NgModule({
imports: [
Elements.forRoot(),
myForms
]
})
如何让 myForms 访问组件中的 ConfigService ?
forRoot 方法正常运行,因为我可以在 App 模块中访问。
import { ElementsModule, ConfigService } form './local-dir';
我想将它提供给 myForms 已经知道的 myForms 服务。或者找到一种方法,我不必将文件直接导入到我想要使用的 myForms 组件中。
如果我进入 myForms NPM PACKAGE,我可以执行以下操作,当然会有效。
import { ConfigService } from './local-dir';
@Component({
selector: 'my-element',
providers: [ConfigService]
});
export class MyElementComponent {
constructor(private CS: ConfigService){}
}
更新 - 进一步澄清。
答案 0 :(得分:1)
创建一个桶文件index.ts
export * from '....' path to your module
export * from '....' path to your service
假设以下文件夹结构,
---modules
|---- elements
|---- configuration
在elements文件夹中创建一个桶文件,命名为index.ts
export * from './elements.module';
export * from '../configuration/configuration.service';
使用此文件作为
单行导入import { ElementsModule, ConfigService } from '../elements';