【发布时间】:2020-01-19 00:17:04
【问题描述】:
我已经制作了一个角度库,我正在尝试将几个服务和常量文件导入到库中。但是,当我构建时,我得到服务和常量文件应该在库的“rootDir”下的错误。对于我们如何将主应用程序 src 文件夹下的这些文件导入库并成功构建它,有什么解决方案/方法吗?
【问题讨论】:
-
我没看懂你的问题,你能给我看一下你的代码吗?
我已经制作了一个角度库,我正在尝试将几个服务和常量文件导入到库中。但是,当我构建时,我得到服务和常量文件应该在库的“rootDir”下的错误。对于我们如何将主应用程序 src 文件夹下的这些文件导入库并成功构建它,有什么解决方案/方法吗?
【问题讨论】:
如果您想将应用程序中的某些内容注入到您的库中,请这样做:
export class LibraryModule {
static forRoot(config: any): ModuleWithProviders {
return {
ngModule: LibraryModule,
providers: [{provide: 'config', useValue: config}]
};
}
}
然后像这样使用注入的类:
@Component({
selector: 'app-test',
templateUrl: './app-test.component.html',
styleUrls: ['./app-test.component.css']
})
export class AppTestComponent implements OnInit {
constructor( @Inject('config') config) {
// use the injected
}
}
如何在应用模块中启用注入:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
imports: [ BrowserModule, LibraryModule.forRoot(supposeToInject) ],
providers: [ Logger ],
declarations: [ AppComponent ],
exports: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
【讨论】:
您必须确保您的服务使用以下装饰
@Injectable({providedIn: 'root'})
【讨论】: