【发布时间】:2014-08-21 17:53:29
【问题描述】:
我是 Angular 的新手,目前在网站上遇到问题,我们需要 html5Mode(true),同时保持正常链接像使用 html5Mode(false) 一样工作。
我们在 html-tag 中有我们的 ng-app - 所以整个页面都在一个模块的控制之下。在某些页面上,我们需要通过 ajax 加载新内容并更改特定控制器中的底层模型。这应该将 URL 更改为新的(绝对)URL。通过 $locationProvider.html5Mode(true); 实现这一点很简单;在模块配置中。
现在的问题是:当我们激活 html5Mode 时,普通链接将不再按预期工作。有没有什么方法可以实现所需的行为,而不会将页面分割成多个模块,从而使“正常链接”超出 angular 的范围和模块的 html5Mode 设置?
我的想法是在控制器函数中简单地使用 history.pushState() 来处理内容重新加载的点击事件,但这确实会引发很多异常,甚至不起作用另一方面是正确的。
非常感谢任何想法:-)
最好的问候,SubnetOne
【问题讨论】:
标签: javascript angularjs pushstate