2017-07-29 6 views
0

ich useing yoeman aspnetcore-spa-Vorlage mit Winkel 2.aspnetcore-spa-Routing keine Anbieter

im Grunde gibt es drei Dateien:

  • app.module.client.ts
  • App .module.server.ts
  • app.module.shared.ts

ich habe in meinem Dienst in den Anbietern setzen app.module.client.ts dann hinzugefügt meine Routing in app.module.shared.ts. Welche alle funktionieren und super und ich könnte dazu navigieren aber wenn ich versuche redirectTo durch meinen neuen Pfad zu ersetzen. Die an dieser Stelle ist noch in Ordnung, aber wenn ich die Seite von localhost:5000 geben die Konsole schreit mit Fehler:

fail: Microsoft.AspNetCore.NodeService[0] blah bla Uncaught (in promise): Error: No provider for NameService! 

und einige at injectionError

wenn ich ändern redirectTo: 'home' dann funktioniert es und ich konnte auf meine Seite navigieren. Was schlimmer ist, wenn ich { useHash: true } habe, hört es nicht auf, Fehler im Terminal zu protokollieren.

Ich habe versucht mit Router zu meiner Seite in HomeComponentngOnInit() zu navigieren, die Art von funktioniert, aber immer noch ein Problem, wenn ich die Seite von localhost:5000 eingeben. Was ich nicht versucht habe, ist HomeComponent mit mir stattdessen zu ersetzen.

Was ich wirklich will, ist zu verstehen, was vor sich geht. Ehrlich gesagt, ich bin neu in dieser Vorlage, normalerweise gibt es nur eine app.module.ts. Da ist etwas in dieser Vorlage, das ich nicht verstehe. Bitte, hilf!

+0

Es scheint, wie Sie fehlt hinzuzufügen 'NameService' in Anbieter Array Ihrer' AppModule' –

+0

ich in meinem Beitrag erwähnt habe, dass ich meinen Dienst in app.module.client.ts gesetzt haben. Wenn ich nicht würde, würde ich gar nicht erst arbeiten. Um noch einmal klar zu sein. Dies ist der Fall, wenn der Dienst beim erstmaligen Rendern der Seite fehlgeschlagen ist. Wenn ich von localhost eingeben: 5000 mit meiner App RedirectTo meiner Seite. Wenn ich auf die Standard-Homepage redirect, dann zu meiner Seite navigieren, dann wird es funktionieren. Ich bin mir sicher, dass dies etwas mit der Abhängigkeitsinjektion zu tun hat, die entweder von mir oder dem Framework oder der Vorlage nicht richtig funktioniert. – lock22

Antwort

0

Ich habe eine Arbeit gefunden. Diese Vorlage hat nicht das übliche UniversalModule, vielleicht ist da auch etwas schiefgelaufen. Ich bin mir nicht sicher, ob es der beste Weg, um es zu lösen, aber meine Arbeit um ist:

  1. Zugabe meines Dienstes in app.module.server.ts auch. Das liegt daran, dass ich dachte, dass die Homepage zuerst auf dem Server gerendert wurde.

  2. injizieren ORIGIN_URL in meinem Service. Ich dachte, ich müsste ähnliche Dinge tun wie app.module.client.ts und es hat funktioniert. Also habe ich im Konstruktor meines Dienstes @Inject('ORIGIN_URL') private _originUrl: string hinzugefügt und in meiner http-Methode meine URL mit this._originUrl vorangestellt.