首页 > 解决方案 > 如何使用带有角度的 html5 history.pushstate

问题描述

我正在为我的网络应用程序编写一些新功能。我在其中编写一些脚本,并通过一些标签管理器加载,这样当我的脚本加载时,它将针对一些 UI 组件并从 dom 中删除并注入它的 dom 元素。

现在它删除的组件有一些按钮,单击该按钮会更改 url 并加载映射到 url 的组件。请注意,网络应用程序是有角度的,并且在引擎盖下它使用角度路由。

现在我正在编写的脚本在 Angular 应用程序之外,所以当我通过查询 dom 删除 UI 并注入新元素时,我使用history.pushstate了 html5 来更改 url。url 更改但与其关联的组件永远不会加载。

似乎角度剂量不听 html5 历史中所做的更改。

谁能告诉我如何使这项工作。

请注意我的脚本在角度之外,所以没有任何访问权限。

标签: htmlangularangular-routingbrowser-historyhtml5-history

解决方案


你不能。

pushState是一种说法,“我使用 JS 来修改 DOM,如果你从服务器请求这个URL,你最终会得到相同的页面”。

它不会导致DOM 更改。

如果你想改变 Angular 应用程序的状态,那么你需要 Angular 应用程序为你提供一个 API 来操作它。由于您无权访问它,因此无法添加。


推荐阅读