Angular RC4角度中的路线导航问题2

Angular RC4角度中的路线导航问题2,angular,angular2-routing,Angular,Angular2 Routing,我对RC4路由器的行为有一个问题,因为我已经将angular2版本从beta更新为RC4。 我的systemjs配置中有以下内容: var ngVer = '@2.0.0-rc.4'; var routerVer = '@3.0.0-beta.1'; 一个方法再次附加到按钮加载,它是home.component html的一部分,并调用路由器导航到同一组件。 在angular2的最新升级中,如果在实例化组件时已调用同一组件,则不会调用该组件的ngOnInit 我必须在路由之后再次实例化相同的

我对RC4路由器的行为有一个问题,因为我已经将angular2版本从beta更新为RC4。 我的systemjs配置中有以下内容:

var ngVer = '@2.0.0-rc.4'; 
var routerVer = '@3.0.0-beta.1';
一个方法再次附加到按钮加载,它是home.component html的一部分,并调用路由器导航到同一组件。 在angular2的最新升级中,如果在实例化组件时已调用同一组件,则不会调用该组件的
ngOnInit

我必须在路由之后再次实例化相同的组件,以支持我的应用程序中的业务逻辑

应用程序路由.ts

import { provideRouter, RouterConfig }  from '@angular/router';
import { HomeComponent } from './home.component';

const routes: RouterConfig = [
  {
    path: '',
    redirectTo: '/home',
    pathMatch: 'full'
  },
  {
    path: 'home',
    component: HomeComponent
  }
];

export const appRouterProviders = [
  provideRouter(routes)
];
home.component.ts:

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'my-home',
  templateUrl: 'app/home.component.html' 
})
export class HomeComponent implements OnInit {

  constructor(
    private router: Router) {
  }

  ngOnInit() {
    console.log('in ngOnInit');
  }

  loadAgain(text:string) {
    this.router.navigate(['/home']);
  }
}
<div class="grid grid-pad">
  <div (click)="loadAgain()" class="col-1-4">
      <button style="cursor:pointer; ">Load Again</button>
  </div>  
</div>
home.component.html:

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'my-home',
  templateUrl: 'app/home.component.html' 
})
export class HomeComponent implements OnInit {

  constructor(
    private router: Router) {
  }

  ngOnInit() {
    console.log('in ngOnInit');
  }

  loadAgain(text:string) {
    this.router.navigate(['/home']);
  }
}
<div class="grid grid-pad">
  <div (click)="loadAgain()" class="col-1-4">
      <button style="cursor:pointer; ">Load Again</button>
  </div>  
</div>

再次加载
即使该方法执行并调用router navigate,也不会发生到homeComponent的路由。 我无法以任何方式销毁已初始化的组件。这曾经在2.0.0.beta1中起作用,但在RC4中不起作用。
有人遇到过这种情况吗?

在当前路由器中,如果路径没有改变或者只有参数值改变,那么组件将被重用。这是以前路由器版本中的选择加入,但是“默认”行为,目前没有选择退出。有一个有待讨论的问题,但尚不确定他们是否会实施


路由器的beta.2版已经存在。请尝试导航到一个空组件(空白HTML),然后作为一种解决方法从那里返回主页。@ArpitAgarwal,我试过了。它不起作用。