Angular2 返回时组件生命周期函数不被调用的解决方法

这两天使用 Angular2 遇到的一个 @angular/router 的 bug:

症状

@angular/router 版本 3.0.0-beta.2

  1. 使用 safari 浏览器,iOS 的都可以
  2. 打开 Angular2 官方的范例项目
  3. 点击导航栏上的 Heroes 转到 Heroes 列表页面
  4. 后退回到 Dashboard 页面,正常情况下应该有的四个 Heroes 没有出现

桌面 safari 或 iOS 的都可以,使用 router 导航到一个新页面,然后后退,原页面 Component 的生命周期函数不会被调用,导致页面表现不正常。

解决方法

已经有人修复了:fix(router): back button does not work in IE11 and Safari

但至本文成文还没有更新到最新的 router npm 模块里。不急的话等 router 下个版本应该就修复了。临时应急的话可以自行修改项目目录下的node_modules/@angular/router/src/router.js 的 282 和 284 行即可

this.locationSubscription = this.location.subscribe(Zone.current.wrap(function (change) {
    return _this.scheduleNavigation(_this.urlSerializer.parse(change['url']), change['pop']);
}));

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Youngxj

自适应导航网页源码

1.1K20
来自专栏快乐八哥

使用jQuery Tools scrollable注意事项

项目开发中一直使用jQuery Tools中scrollable插件,一直也只是停留在使用上,最多看文档实现如何调用它的prev(spped)和next(spe...

207100
来自专栏水击三千

浅谈JavaScript的事件(事件流)

   事件流描述的是从页面中接收事件的顺序。IE的事件流失事件冒泡,而Netspace的事件流失事件捕获。 事件冒泡   IE的事件流叫事件冒泡,即事件开始时,...

30580
来自专栏从零开始学自动化测试

appium+python自动化98-非select弹出选择框定位解决

遇到问题:document.getElementsByClassName(…)[0] is undefined 选择框如果是select标签的,可以直接用sel...

14520
来自专栏小白课代表

更新|PC截图工具的最佳选择。

说到截图,最常用的可能就是QQ自带的截图功能了,简单流畅能满足我们的日常需求,依附于QQ,没有特殊的需求甚至不需要其他的截图软件。

15700
来自专栏Android小菜鸡

自定义组件——TitleView

  TitleView是一个常用的顶部标题栏组件,操作简单,可以快速搭建,并实现统一管理标题栏的目的。   采用建造者模式,支持快速构建back按钮、标题名、...

9530
来自专栏静默虚空的博客

详谈如何定制自己的博客园皮肤

如果你仅仅想原封不动的使用本人的定制皮肤,而不想了解实现细节。那么你只需要完成以下几个步骤即可,后面的章节可以忽略。

53500
来自专栏前端人人

React第三方组件1(路由管理之Router的使用①简单使用)

本教程总共6篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1、React第三方组件1(路由管理之Router的使用①...

28830
来自专栏ytkah

微信公众平台编辑器可以剪裁和替换正文图片了

  之前微信公众平台后台编辑器上线封面图裁剪功能,时隔近两个月的今天,公众平台编辑器正文图片也可以剪裁和替换了,简单的图片裁剪编辑小编们再也不用放到ps等作图软...

35750
来自专栏计算机编程

SNS项目笔记<八>--Slides显示大图

在浏览大图的时候,我们总有些长图进行查看,在查看的过程中,我们难以一次性查看全部内容,于是我们想,如果在slides里面技能横滑切换,又能竖滑滚动查看就好了。这...

12120

扫码关注云+社区

领取腾讯云代金券