2016-05-31 281 views
0

我試圖讓我的頭圍繞此路由概念,但無法理解如何工作。角2路由注入到路由器插座不工作

目前我有一個@routes,用'/'路徑加載一個組件。這應該在頁面呈現後立即加載。我遇到的麻煩是..我的組件只在html模板中存在[routerLink]時才加載。

@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{ 

} 

回答

2

這是新路由器中的一個已知問題,將被修復。如果沒有routerLink,將不會創建任何路由器實例。或者,您可以將路由器注入根組件。

+0

感謝您的快速回答。你在另一個線程中提到在AppComponent中注入「Router」。你運行了一個「無法解決路由器的所有參數」錯誤? – user1964663

+0

您從'@ angular/router-deprecated';'從'@ angular/router';'**和**'import {RouteConfig,ROUTER_DIRECTIVES,ROUTER_PROVIDERS}的import {Routes,RouterOutletMap}你只需要決定其中的一個。這兩者在任何方面都不兼容。 –

+0

我得到了錯誤使用@角/路由器,我也嘗試使用@角/路由器deprecate並得到了同樣的事情。我很好奇你是什麼版本。我目前使用「@ angular/core」:「2.0.0-rc.1」。 – user1964663