我制作了一个角度库,我正在尝试将几个服务和常量文件导入库中。但是,当我构建时,出现错误,即服务和常量文件应位于库的“ 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'})