일부 타사 모듈을 랩핑하고 해당 서비스를 인스턴스화하고 초기화하여 응용 프로그램에서 사용할 준비가 된 하위 모듈의 서비스가 있습니다. AngularJS 실행 블록에 대한 대체 서비스 인
@Injectable()
class SubmoduleInitializerService {
constructor (thirdPartyService: ThirdPartyService) {
thirdPartyService.initialize(...);
...
}
}
@NgModule({
imports: [ThirdPartyModule],
exports: [ThirdPartyModule],
providers: [
ThirdPartyService,
SubmoduleInitializerService
]
})
class AppSubmodule {}
ThirdPartyService
SubmoduleInitializerService
으로
ThirdPartyService
또는 부모 인젝터와 같은 주사기에 주입, 직접 응용 프로그램에 주입되지 않고 다른
ThirdPartyModule
단위에서 사용되는 모든 괜찮 :
export class AppComponent {
constructor(
/* DO NOT REMOVE! BAD THINGS HAPPEN! */
submoduleInitializerService: SubmoduleInitializerService
) {}
...
}
SubmoduleInitializerService
이 클래스 또는 템플릿에서 사용되지 않은 경우 AppComponent
에 주입 된 상태를 유지해야하는 이유가 분명하지 않기 때문에 (부주의로 이미 한 번 삭제되었습니다.) 부적절한 패턴으로 입증되었습니다.
기본적으로 AppSubmodule
모듈에는 각도 1.x angular.module(...).run(...)
블록의 대안이 필요합니다.
여기에있는 옵션은 무엇입니까?