2016-06-01 90 views
0

我最近升級我的應用程序從角2.0.0 beta.12角2.0.0 RC.1。我正在使用router-deprecated模塊進行路由。默認登錄路由加載後,router.navigate(['Newgateway'])似乎不能正常工作。angular2 RC.1:router.navigate()不工作

RootComponent

import { Component, provide } from '@angular/core'; 
import {Router, RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from '@angular/router-deprecated'; 
import { LoginComponent } from './loginComponent'; 
import {NewGatewayComponent} from './newGatewayComponent'; 

@Component({ 
    directives: [ROUTER_DIRECTIVES], 
    providers: [ROUTER_PROVIDERS], 
    selector: 'root-comp', 
    template: `<router-outlet></router-outlet>`, 
}) 
@RouteConfig([ 
    { path: '/newgateway',name: 'Newgateway',component: NewGatewayComponent},  
    { component: LoginComponent, name: 'Login', path: '/login', useAsDefault: true}, 
    { path: '/', redirectTo: ['/Login']} 
]) 
export class RootComponent{ 

    constructor(private _router: Router) { 

    } 

} 

LoginFormComponent

import { Component, Inject} from '@angular/core'; 
import { Router, ROUTER_PROVIDERS } from '@angular/router-deprecated'; 

@Component({ 
    selector: 'login-form', 
    templateUrl: './loginForm.html', 
    providers: [ROUTER_PROVIDERS] 
}) 
export class LoginFormComponent { 
    constructor(private _router: Router) { 
    } 

    // if login is sucessfull, navigate back to specified URL 
    redirect(result: any, loginComp: LoginFormComponent) { 
     this._router.navigate(['Newgateway']); 
    } 
} 

NewGatewayComponent

import {Component, provide} from '@angular/core'; 
@Component({ 
    selector: 'pi-new-gateway-panel', 
    template: ` 
     <h1>Gateway</h1> 
    `, 
}) 
export class NewGatewayComponent { 
    constructor() { 
    console.log('loaded') 
    } 
} 

的概率這裏這裏是router.navigate()以下調用loginComponent將瀏覽器URL改爲localhost:4001/newgateway但是組件未加載。只有刷新瀏覽器頁面後,纔會調用newgatewayComponent構造函數。

this._router.navigate(['Newgateway']);

欣賞任何指針。

+0

我建議你創建一個plnkr來顯示問題。然後檢查新的路由器功能,看看您是否可以升級... –

+0

您可能想要考慮這個問題一次http://stackoverflow.com/questions/37192628/history-forward-backward-button-doesnt-work-with -angular-2-router/37432091 –

回答

0

確定想通了..錯過了以下問題在我的package.json依賴

"@angular/compiler": "2.0.0-rc.1", 
"@angular/platform-browser": "2.0.0-rc.1", 
+0

爲什麼要使用這些依賴關係? –

0

我想你內斯添加/但問題並沒有提供足夠的信息,以確保

this._router.navigate(['/Newgateway']); 
+0

嘗試使用/ Newgateway ..沒有幫助..代碼正在與beta 12雖然..控制檯上也沒有錯誤。請讓我知道如果需要任何澄清..謝謝 – user3869623

+0

沒有一個運行的例子很難推理路由。你可以創建一個Plunker重現嗎? –

0

假設你在引導函數中包含了ROUTER_PROVIDERS,你應該從LoginFormComponent.ts中的提供者中刪除它。