Angular2 OnInit 不触发 IE11
Angular2 OnInit Not Firing IE11
当您导航到另一个 angular2 路线,然后返回到原始路线时,IE11 似乎没有触发 OnInit。所以要清楚 route1 是有问题的路由,并且是默认路由。当 route1 加载 OnInit 在我的 component1 中正常触发时,我导航到 route2/component2 OnInit 也正常触发。问题是当我导航回 route1/component1 时,OnInit 不会在 IE 中触发,但会在所有其他浏览器中触发。我们正在使用 RC3。
这是我的问题组件:
import { Component, OnInit} from '@angular/core';
import { UdrService} from './udr.service';
import { Widget} from '../widget';
@Component({
selector: 'udr',
templateUrl: './Home/RenderUDR',
providers: [UdrService]
})
export class UdrComponent implements OnInit {
constructor(private _udrService: UdrService) { }
widgets: Widget[];
ngOnInit() {
this._udrService.getUdrActiveWidgets()
.subscribe(wdgts => this.widgets = wdgts);
}
}
谢谢!
编辑 1 ---
我注意到,当 DOM 中发生其他事件时(即在元素上触发 onhover,或者我打开下拉菜单,OnInit 方法触发,似乎当 angular2 更改检测触发时它最终触发 OnInit)
编辑 2 ---
这个问题在 rc4 中仍然存在。看来我的问题是这样的:
https://github.com/angular/angular/issues/10146
修复链接显示 router.ts 的更新。我没有看到该文件捆绑在 npm 包中,只有转译的 router.js 文件。我如何应用此更新?
谢谢
Angular2 github 站点上似乎有几份关于此问题的重复报告。我从这个 link 中解决了一个问题:
GitHub Issue
我必须做的唯一修改是 _router.events.subscribe 而不是 _router.subscribe,因为我认为 _router.events.subscribe 对组件路由器来说是新的。
export class AppComponent {
constructor(private _applicationRef: ApplicationRef, private _router: Router) {
_router.events.subscribe(() => {
this._applicationRef.tick();
setTimeout(() => {
this._applicationRef.tick();
}, 100);
});
}
我希望这个问题在 RC5 中得到解决,但这似乎暂时有效。
当您导航到另一个 angular2 路线,然后返回到原始路线时,IE11 似乎没有触发 OnInit。所以要清楚 route1 是有问题的路由,并且是默认路由。当 route1 加载 OnInit 在我的 component1 中正常触发时,我导航到 route2/component2 OnInit 也正常触发。问题是当我导航回 route1/component1 时,OnInit 不会在 IE 中触发,但会在所有其他浏览器中触发。我们正在使用 RC3。
这是我的问题组件:
import { Component, OnInit} from '@angular/core';
import { UdrService} from './udr.service';
import { Widget} from '../widget';
@Component({
selector: 'udr',
templateUrl: './Home/RenderUDR',
providers: [UdrService]
})
export class UdrComponent implements OnInit {
constructor(private _udrService: UdrService) { }
widgets: Widget[];
ngOnInit() {
this._udrService.getUdrActiveWidgets()
.subscribe(wdgts => this.widgets = wdgts);
}
}
谢谢!
编辑 1 --- 我注意到,当 DOM 中发生其他事件时(即在元素上触发 onhover,或者我打开下拉菜单,OnInit 方法触发,似乎当 angular2 更改检测触发时它最终触发 OnInit)
编辑 2 --- 这个问题在 rc4 中仍然存在。看来我的问题是这样的:
https://github.com/angular/angular/issues/10146
修复链接显示 router.ts 的更新。我没有看到该文件捆绑在 npm 包中,只有转译的 router.js 文件。我如何应用此更新?
谢谢
Angular2 github 站点上似乎有几份关于此问题的重复报告。我从这个 link 中解决了一个问题: GitHub Issue
我必须做的唯一修改是 _router.events.subscribe 而不是 _router.subscribe,因为我认为 _router.events.subscribe 对组件路由器来说是新的。
export class AppComponent {
constructor(private _applicationRef: ApplicationRef, private _router: Router) {
_router.events.subscribe(() => {
this._applicationRef.tick();
setTimeout(() => {
this._applicationRef.tick();
}, 100);
});
}
我希望这个问题在 RC5 中得到解决,但这似乎暂时有效。