angularjs正常导航而不是$ location.path

时间:2016-12-16 13:04:40

标签: javascript angularjs

在控制器A中我做$location.path('/home'),但实际上我想要一个正常的重定向。 $ location.path不会重新加载页面。我知道在ui-route中有$state.go({reload:true}),但是如何用普通的ngRoute做到这一点?我做了

.controller('home', function($route){
$route.reload()
}

我得到了一个无限循环。

2 个答案:

答案 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>