Is there any instructions on how to build angular by myself? On Fri, Mar 22, 2019 at 8:09 PM Peter Hsu <xusw...@gmail.com> wrote:
> Hi Angular: > > I am circling back to a problem I encountered a while ago and didn't have > time to resolve. The story is that I have a angular 1.7 app with a rather > eccentric setup. (It runs as both standalone website and a plugin for > another angular app with different bootstrap code path) > > I wanted to upgrade our dependencies and part of this implies I will have > to start using angular 7. However, the static injector is starting to give > me issues. > > The SDK I use requires me to instantiate services (from their library) and > pass it to its application context during app init. I need to do something > as followed. > > class AppComponent implements OnDestroy, OnInit { > constructor( > private appContext: AppContextService, private navigationService: > NavigationService) { > } > > public ngOnInit(): void { > this.appContext.ngInit({ navigationService: this.navigationService }); > } > } > > Where AppContextService and NavigationService are both provided by the > SDK. > > However, after upgrading to angular 7 I am starting to see this error > during my app launch. > > (object): Error: StaticInjectorError(AppModule)[NavigationService -> > Router]: > StaticInjectorError(Platform: core)[NavigationService -> Router]: > NullInjectorError: No provider for Router! > > Note that NavigationService is dependent of @angular/router and I have > RouterModule.forRoot in my app module, also I remembered to export > RouterModule in my app module. > > This is extremely confusing because I actually tried to move the > instantiation of NavigationService to the init method and see the > behavior as followed > > > constructor( > private injector: Injector, > private appContext: AppContextService, > ) { > ..... > } > > public ngOnInit(): void { > let router: Router = this.injector.get(Router); > if (!router) { > console.warn(`no router`); > } else { > console.warn(`yes router`); > } > let navigationService: NavigationService = this.injector.get( > NavigationService); > this.appContext.ngInit({ navigationService: navigationService }); > .... > > Output > > *yes router* > > > *(object): Error: StaticInjectorError(AppModule)[NavigationService -> > Router]: StaticInjectorError(Platform: core)[NavigationService -> > Router]: NullInjectorError: No provider for Router!* > > How is this even possible? > > (Apologies for asking such a vague question. I am currently trying to > create a minimal reproduction with very little luck due to the complicated > way our app is set up.) Just wondering if anyone can spot the issue or > provide some information that I can work on while I try to come up with a > more concise problem description) > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Angular and AngularJS discussion" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/angular/_AnXbUTnpkc/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > angular+unsubscr...@googlegroups.com. > To post to this group, send email to angular@googlegroups.com. > Visit this group at https://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Angular and AngularJS discussion" group. To unsubscribe from this group and stop receiving emails from it, send an email to angular+unsubscr...@googlegroups.com. To post to this group, send email to angular@googlegroups.com. Visit this group at https://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.