我对RC4路由器的行为有问题,因为我已将angular2版本从beta更新为RC4。 我在我的systemjs配置中有以下内容:
var ngVer = '@2.0.0-rc.4';
var routerVer = '@3.0.0-beta.1';
一个方法附加到按钮 Load Again ,它是home.component html的一部分,并且确实将路由器导航调用到同一个组件。
随着最近的angular2升级,如果在实例化组件时已经调用了同一组件的ngOnInit
,则不会调用它。
我必须在路由之后再次实例化以支持我的应用程序中的业务逻辑。
app.routes.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']);
}
}
home.component.html:
<div class="grid grid-pad">
<div (click)="loadAgain()" class="col-1-4">
<button style="cursor:pointer; ">Load Again</button>
</div>
</div>
即使该方法执行并调用路由器导航,也不会发生到homeComponent的路由。 我无法以任何方式销毁已初始化的组件。这曾经在2.0.0.beta1中工作,但在RC4中没有。 有人遇到过这种情况吗?
答案 0 :(得分:0)
在当前路由器中,如果路径未更改或仅参数值已更改,则会重用组件。这是以前路由器版本的选择,但是是“默认”行为,目前没有选择退出。一些讨论存在一个悬而未决的问题,但尚未确定它们是否会实施。