2016-11-15 4 views
0

Ich bin auf einem reddit Klon als meine erste Angular 2-Anwendung arbeiten, ist der Code hier:Angular 2 reddit Klon Routing

https://github.com/claysmith/hackerspulse (mit VS-Code mit .NET Core)

Ich versuche, um die routen wie bei reddit einzurichten, wo man, wenn man zu/r/sub geht, Artikel für einen anderen subreddit lädt.

Hier ist mein Router:

const routes: Routes = [ 
{ path: '', redirectTo: '/r/home', pathMatch:'full' }, 
{ path: 'r/:id', component : SubverseComponent }]; 

ich will, wenn sie geladen in die Heimat-Sub zu gehen, und wenn Route/r/etwas gegeben wird es mein Subverse Komponente laden, wo ich Artikel geladen wird, von der db on ng init basierend auf welcher Unterversion es ist.

https://github.com/claysmith/hackerspulse/tree/master/wwwroot/app/subverse

Allerdings, wenn ich die Website starten, Routen scheinen keine Wirkung zu haben.

Ich habe es hakte in meinem Haupt app.module.ts

@NgModule({ 
declarations: [ 
    AppComponent, 
    ArticleComponent, 
    SubverseComponent // <-- added this 
], 
imports: [ 
    BrowserModule, 
    FormsModule, 
    HttpModule, 
    RouterModule.forRoot(routes) 
], 
providers: [], 
bootstrap: [AppComponent]}) 

Aber wenn ich gehe zu versuchen, eine subreddit ich JavaScript-Fehler erhalten wie:

GET http://localhost:5000/r/systemjs.config.js Versagen (Es sieht in/r/für Javascript wenn es nur in dem Hauptweg, system.config.js)

https://i.imgur.com/heixmdQ.png

Hinweis sollte es nicht im/r/Verzeichnis überhaupt nach javascript/css suchen, sollte es im Home-Verzeichnis darüber suchen.

Auch ich bin nicht auf/r/home beim Laden von localhost weitergeleitet. Und wenn Sie zu/r/test gehen, wird die untergeordnete Komponente HTML nicht geladen und ein JavaScript-Protokoll des untergeordneten Namens erstellt.

Ich mache wahrscheinlich einen Anfängerfehler. Bitte helfen Sie.

Edit: Ich habe meine app mehr mit MVC, in den startup.cs integrierten I

setzte
 app.UseMvc(routes => 
     { 
      routes.MapRoute(
       name: "default", 
       template: "{controller=Home}/{action=Index}/{id?}"); 

      // when the user types in a link handled by client side routing to the address bar 
      // or refreshes the page, that triggers the server routing. The server should pass 
      // that onto the client, so Angular can handle the route 
      routes.MapRoute(
       name: "spa-fallback", 
       template: "{*url}", 
       defaults: new { controller = "Home", action = "Index" } 
      ); 
     }); 

nun die JavaScript-Dateien im Verzeichnis/r/Verzeichnis mit HTML-Code der Seite gefüllt. Hilfe?

Edit: Fortschritte zu machen, jetzt ist es versucht Subverse Komponente zu laden, aber nicht https://i.imgur.com/Leki6tY.png

Antwort

0

Also, meiner app.component.ts Ich hatte Vorlage Router-Ausgang wie

template: '<router-outlet></router-outlet>', 
einstellen

Und es funktioniert! : ~)