我已经实现了这里解释的解决方案 https://stackoverflow.com/a/24102139/2795097
app.run(['$route', '$rootScope', '$location', function ($route, $rootScope, $location) {
var original = $location.path;
$location.path = function (path, reload) {
if (reload === false) {
var lastRoute = $route.current;
var un = $rootScope.$on('$locationChangeSuccess', function () {
$route.current = lastRoute;
un();
});
}
return original.apply($location, [path]);
};
}])
在没有重新加载的情况下更改路径可以很好地解决这个问题。
之后我遇到使用<a href='...'>
管理的链接$routeProvider
时出现问题。他们应该重新加载视图,但实际发生的是路径正在改变,但我的视图根本没有更新。奇怪的是,有些链接实际上刷新了视图,有些则没有。
仅在导航后通过使用$location.path
从解决方案false
调用新方法时才会发生。
知道这里发生了什么吗?
答案 0 :(得分:0)
我必须添加一个小延迟来取消注册$ locationChangeSuccess函数。 我的代码以这样的结尾:
\d[a-zA-Z]{1}|[a-zA-Z]\d{1}
};