Полный отказ от ответственности: я очень новичок в angular, например, я только что начал вчера новый вид нового.
У меня есть этот пользовательский модуль:
foo.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FooComponent } from './foo.component';
import { FooService } from './foo.service';
@NgModule({
imports: [
CommonModule
],
exports: [
FooComponent
],
declarations: [
FooComponent
]
})
@NgModule()
export class FooModule {
static forRoot(config: any): any {
return {
ngModule: FooModule,
providers: [
FooService
]
}
}
}
app.module.ts
В разделе imports
app.module
я нашел это.
...
imports: [
BrowserModule,
FooModule.forRoot({id: 'SOME_ID'})
],
...
Я хочу передать данные из .forRoot(args)
в FooService
, чтобы я мог их инициализировать.
После инициализации FooService
я хочу внедрить его в любой компонент, который захочу, и использовать методы внутри него.
Я имею в виду что-то вроде этого:
foo.service.ts
@Injectable()
export class FooService {
// get the config from forRoot()
constructor() {
// initialize stuff here using
// the config from forRoot()
}
doThis() {...}
doThat() {...}
}
foo.component.ts
...
export class FooComponent implements OnInit {
biz: any
constructor(foo: FooService) {
this.biz = foo;
}
bar() {
// acess stuff from FooService
this.biz.doThis();
this.biz.doThat();
}
}
...