如何重新加载AngularJS控制器和解析器?

时间:2014-06-27 02:55:39

标签: angularjs angular-ui-router

我正在使用Angular的UI路由器,我正在寻找创建$ scope函数(最终传递给视图以进行ng-click调用)以重新加载控制器及其关联的解析器。我该怎么做?

我试过这个,但似乎没有重新加载解析器:

$scope.reloadMe = function() {
    $state.transitionTo($state.current, $stateParams, { reload: true, inherit: false, notify: true });
};

2 个答案:

答案 0 :(得分:1)

只需将$ route注入控制器并调用$ route.reload,所以代码如下:

$scope.reloadMe = function () {
  $route.reload();
};

您可以在此处阅读文档:https://docs.angularjs.org/api/ngRoute/service/ $ route

答案 1 :(得分:0)

你可以注入$ injector并加载$ state来重新加载。这里我举两个例子,你可以使用其中一个。

function MyController($injector, data) {
    $injector.get('$state').reload(); // this reload all states and controllers scopes
    // or
    $injector.get('$state').go($state.current, {}, {reload: true}); // second parameter is for $stateParams
}

否则,如果我需要重新加载页面,我使用javascript

window.location.reload() 

这个问题被问到here