angular.js 更改 url 而不调用控制器

angular.js change url without calling controller

我必须修复这样的解决方案: 我的 url 是 http://localhost:8080/#/dashboard 在我的仪表板中有一些功能要加载,例如当我的 url 将是 http://localhost:8080/#/dashboard/20 我必须加载国家 ID 等于 20 的城市以及当我的url 将是 http://localhost:8080/#/dashboard/20/1 我必须加载城市 ID 等于 1 的地区。所以我的问题是什么: 当我单击一些 link 并且 url 更改为 #/dashboard/20 我正在加载城市,之后我单击另一个 link 并且 url 更改为 #/dashboard/20/1 但是这里我的控制器正在刷新并且所有数据都在再次加载,我想更改 url 但不刷新控制器,当我的城市已经加载时我必须有机会只加载区域而不是两者都加载马上再来一次。

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

有什么想法吗?

我看到这个工作的唯一方法是引用同一个控制器或使用 factory/service 来维护你的变量。 如果它们粘在控制器上,那么当状态改变时,控制器将始终改变。

编辑:顺便说一句,你看过 ui.router 了吗? https://github.com/angular-ui/ui-router 这是 link。我发现这比旧的 $route

更有帮助