我正在使用angular2 plain js
问题是在ngOnInit()
之后加载组件后未调用history.back()
。当我使用routeLink
从一个组件导航到另一个组件时,我的组件一切正常。
我的组件如下所示:
Page1Component = ng.core
.Component({
selector: 'page1',
templateUrl: 'app/components/page1/view.html',
directives: [ ng.router.ROUTER_DIRECTIVES]
})
.Class({
constructor: [
ng.router.Router,
function(router) {
console.log("constructor called"); // <- this is called in all cases.
}
],
ngOnInit: function(){
console.log("ngOnInit"); // <-- This is NOT called when coming from history.back(), but it's working ok in other cases.
},
ngAfterContentInit: function(){
console.log("called ngAfterContentInit"); // <-- Same as ngOnInit
}
});
从这个组件中,当我从{{[routerLink]="['Page2']"
Page2
和history.back()
拨打ngOnInit
和ngAfterContentInit
时,我会使用路由器,例如:Page1
和index.html
。 1}}没有被调用。
问题仅出在Safari iOS上
在我的<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script>
<script type="text/javascript" src="libs/es6-shim/es6-shim.min.js"></script>
<script type="text/javascript" src="libs/es6-shim/shims_for_IE.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-polyfills.min.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/Rx.umd.min.js"></script>
<script type="text/javascript" src="libs/angular/2.0.0-beta.13/angular2-all.umd.js"></script>
我包括:
"430."000\.000
答案 0 :(得分:2)
这是一个已知问题
要检查的一些事项
在查看演示时跳出来的一件事是你的demo.ts组件上有OnPush ChangeDetectionStrategy。此策略通常与Observables或输入更改一起使用,通知Angular需要运行更改检测。从demo.ts组件中删除OnPush并再次测试您的分页路径。
您是否在index.html中添加了带有标签的angular2 polyfill?如果你可以分享你的index.html也会有所帮助。