如何使用 html5 history.pushstate 和 angular

问题描述

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

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

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

似乎 angular 不听 html5 历史中所做的更改。

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

请注意,我的脚本在 angular 之外,因此无法访问它。

解决方法

你不能。

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

它不会导致DOM变化。

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...