我制作了一个角度库,并尝试将几个服务和常量文件导入库中。但是,当我构建时,出现错误消息,即服务和常量文件应位于库的“ rootDir”下。关于如何将这些位于主应用程序src文件夹下的文件导入到库中并成功构建,是否有任何解决方案/方法?
lalala20075149 回答:将多种服务注入角度库
如果要从应用程序向库中注入某些内容,请按以下方式进行操作:
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'})