angular.js在不调用控制器的情况下更改url

angular.js change url without calling controller

本文关键字:情况下 url 控制器 js 调用 angular      更新时间:2023-09-26

我必须修复这样的解决方案:我的url是http://localhost:8080/#/dashboard。在我的仪表板中,有一些功能需要加载,例如,当我的url将是http://localhost:8080/#/dashboard/20时,我必须加载国家id等于20的城市;当我的url将是http://localhost:8080/#/dashboard/20/1时,我不得不加载城市id等于1的地区。那么我的问题是什么:当我点击一些链接,url变为#/dashboard/20时,我正在加载城市,之后我点击另一个链接,url变成#/dashboard/20/1,但这里我的控制器正在刷新,所有数据都在再次加载,我想更改url,但不刷新控制器,当我的城市已经加载时,我必须有机会在那之后只加载地区,而不是同时加载两个地区。

我尝试了window.history.pushState,但它不起作用,可能有什么方法可以禁用和启用我的$routeProvider吗?

有什么想法吗?

我看到这一工作的唯一方法是引用同一个控制器或使用工厂/服务来维护变量。如果控制器粘在控制器上,则当状态发生变化时,控制器总是会发生变化。

编辑:顺便说一句,你看了一下ui.router吗?https://github.com/angular-ui/ui-router这是链接。我发现这比旧的$route 更有帮助