2016-05-31 5 views
0

Ich versuche, meinen Kopf wickeln um dieses Routing-Konzept, aber Probleme zu verstehen, wie funktioniert.angular 2 routing injizieren in Router-outlet funktioniert nicht

Momentan habe ich eine @routes, die eine Komponente mit einem '/' Pfad laden. Dies sollte in den Laden sobald die Seite rendern. Was ich habe Probleme mit .. ist meine Komponente nur laden, wenn ein [RouterLink] in der HTML-Vorlage vorhanden ist.

@Component({ 
    selector: 'my-app', 
    template: `  
    <h1>Component Router</h1> 
    <nav> 
     <a [routerLink]="['/crisis-center']">Crisis Center</a> 
     <a [routerLink]="['/heroes']">Heroes</a> 
    </nav> 
    <router-outlet></router-outlet>`, 
    directives: [ROUTER_DIRECTIVES] 

}) 

@Routes([ 
    {path: '/', component: CoreComponent} 
]) 

***core.component** 

import {Component} from '@angular/core'; 
import { Routes , RouterOutletMap} from '@angular/router'; 
import { RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from '@angular/router-deprecated'; 

import { SideBarComponent} from './sidebar/sidebar.component'; 


@Component({ 
    template: `<side-bar></side-bar> 
    <router-outlet></router-outlet>`, 
    directives: [SideBarComponent] 

}) 

export class CoreComponent{ 

} 

Antwort

2

Das ist ein bekanntes Problem in dem neuen Router, der behoben wird. Es wird keine Router-Instanz erstellt, wenn keine vorhanden ist. Alternativ können Sie den Router in die Root-Komponente einfügen.

+0

Danke für die schnelle Antwort. Sie haben auf dem anderen Thread erwähnt, "Router" in AppComponent zu injizieren. Haben Sie den Fehler "Kann nicht alle Parameter für Router auflösen" ausgeführt? – user1964663

+0

Sie importieren von 'import {Routes, RouterOutletMap} von '@ angular/router';' ** und ** 'import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} von '@ angular/router-deprecated';'. Sie müssen sich für nur einen von ihnen entscheiden. Diese beiden sind in keiner Weise kompatibel. –

+0

Ich habe den Fehler bei der Verwendung von @ Angular/Router, ich habe auch versucht mit @ Angular/Router-Deprecate und habe das gleiche bekommen. Ich bin gespannt, in welcher Version du bist. Ich verwende derzeit "@ angular/core": "2.0.0-rc.1". – user1964663