【问题标题】:back button on Angular2 is brokenAngular2 上的后退按钮坏了
【发布时间】:2016-04-02 02:22:43
【问题描述】:

更新**

我正在使用路由编写我的第一个 Angular2 应用程序。一个简单的测验应用程序。

单击后退按钮会触发问题行为,模板无法使用模型中的数据正确呈现。

我有一个路由方案,您可以使用/question/:n 之类的 URL 模式在测验中的一系列问题之间切换。

我的组件实现了OnReuseOnActivateCanReuse

我的模型通过属性附加到组件。

This Plunker 有我的应用程序的简化版本。

您可以看到单击“下一步”按钮转到下一个问题并更新 URL。单击浏览器的后退按钮确实会将 URL 更改回原样,但模板并未实际呈现。

我错过了什么?

【问题讨论】:

  • 用 Plunk 更新了问题

标签: angular angular2-routing


【解决方案1】:

如果这是一个基本的 href 问题,则很难用 Plunker 进行诊断。所以我不确定这是否是问题,但请尝试一下。

尝试改变这个:

<script>document.write('<base href="' + document.location + '" />');</script>

到这里:

 <base href="/">

在您的 index.html 中。如果它已经设置为后者,请发表评论,我将更新此回复。

【讨论】:

  • 谢谢!嗯,我试过了,它的行为没有任何明显的变化
  • BTW 在 Plunker 以及我的实际代码库中尝试过
  • 在实际应用中一定要使用第二个选项。如果您使用第一个,则刷新主页以外的页面会将您的基本 href 动态设置为您不想要的内容。但不幸的是,我很难复制这个问题。 plunker 代码似乎在单击下一步时转到下一个问题,在刷新时保持正确的 url/视图,并在使用返回时显示正确的问题。关于我们如何复制该问题的任何其他想法?
  • 非常有趣!它在 Safari 上对我不起作用,但您的评论促使我在 Chrome 上对其进行测试,它确实有效。似乎是浏览器支持问题
  • 我将向 Angular 提出问题!感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多