【发布时间】:2017-03-13 16:55:36
【问题描述】:
在实际的 Angular2 beta 14(及之前)中,Safari(实际使用 9.1)上的后退按钮(使用路由和多个视图时)似乎存在问题:https://github.com/angular/angular/issues/7722
我也遇到过这个问题,虽然这很好用,例如在 Chrome 上。
我正在寻找解决方法,直到问题得到解决?
【问题讨论】:
标签: safari angular angular2-routing
在实际的 Angular2 beta 14(及之前)中,Safari(实际使用 9.1)上的后退按钮(使用路由和多个视图时)似乎存在问题:https://github.com/angular/angular/issues/7722
我也遇到过这个问题,虽然这很好用,例如在 Chrome 上。
我正在寻找解决方法,直到问题得到解决?
【问题讨论】:
标签: safari angular angular2-routing
在“angular2”上:“2.0.0-beta.14”
我必须在区域内运行滴答声才能让它为我工作。
import {ApplicationRef, <anything else you need>} from 'angular2/core';
import {Router,<anything else you need>} from 'angular2/router';
export class AppComponent {
constructor(private _ref: ApplicationRef, private _router: Router) {
_router.subscribe((value) => {
_ref.zone.run(() => _ref.tick());
});
}
}
【讨论】:
此错误有部分解决方法:
Router和ApplicationRef注入应用组件 router.subscribe((value)=>
{
//todo: check browser UA or any other parameters to detect back button, i.e. if (safari) {}
//trigger change that will invoke init methods
appRef.tick();
});
【讨论】:
constructor(private _ref: ApplicationRef, private _router: Router) {
_router.events.subscribe((value) => {
_ref.zone.run(() => _ref.tick());
});
}
不推荐使用_router.subscribe,并将在_router 上抛出未定义函数 .subscribe()。
【讨论】:
_router.params.subscribe(params => { ... });