我最近升級我的應用程序從角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']);
欣賞任何指針。
我建議你創建一個plnkr來顯示問題。然後檢查新的路由器功能,看看您是否可以升級... –
您可能想要考慮這個問題一次http://stackoverflow.com/questions/37192628/history-forward-backward-button-doesnt-work-with -angular-2-router/37432091 –