在控制器A中我做$location.path('/home')
,但实际上我想要一个正常的重定向。 $ location.path不会重新加载页面。我知道在ui-route中有$state.go({reload:true})
,但是如何用普通的ngRoute做到这一点?我做了
.controller('home', function($route){
$route.reload()
}
我得到了一个无限循环。
答案 0 :(得分:0)
您可以使用窗口对象重新加载而不是$location.path('/path');
:
window.location = '/path';
如果您想使用ngRoute,可以在routeChange上重新加载页面:
myApp.run(['$route', '$rootScope', function ($route, $rootScope) {
return $rootScope.$on('$routeChangeStart', function (event, next, current) {
$route.reload();
});
}]);
答案 1 :(得分:0)
首先为什么要在导航中更改位置时重新加载页面?我认为我们不需要在位置变化上重载()。
您将获得$ route.reload()作为动态函数。控制器在导航和检查动态函数时执行并运行$ route.reload();.所以路由重新加载,控制器再次启动,并再次执行on-fly函数$ route.reload();.所以重装是无限的。
您可以根据需要在功能ng-click中尝试$ route.reload。不要使用reload()函数作为on-fly函数。
实施例
$scope.saveData = function(){
//some save functionality and reload the route
$route.reload();
}
<button ng-click="saveData">Save</button>