我正在使用Angular UI路由器,并希望重新加载当前状态并刷新所有数据/重新运行控制器以获取当前状态及其父级.
我有3个州级别:directory.organisations.details
directory.organisations包含一个包含组织列表的表.单击表中的项目会加载directory.organisations.details并使用$ StateParams传递项目的ID.因此,在详细信息状态中,我加载此项目的详细信息,编辑它们,然后保存数据.到目前为止都很好.
现在我需要重新加载此状态并刷新所有数据.
我试过了:
$state.transitionTo('directory.organisations');
Run Code Online (Sandbox Code Playgroud)
哪个进入父状态,但没有重新加载控制器,我想因为路径没有改变.理想情况下,我只想保留在directory.organisations.details状态并刷新父级中的所有数据.
我也尝试过:
$state.reload()
Run Code Online (Sandbox Code Playgroud)
我在API WIKI for $ state.reload上看过这个"(控制器现在重新修复的错误,很快就会修复)."
任何帮助,将不胜感激?
在基于多个用户上下文呈现整个页面并发出多个$http
请求之后,我希望用户能够切换上下文并再次重新呈现所有内容(重新发送所有$http
请求等).如果我只是将用户重定向到其他地方,那么事情就会正常运行:
$scope.on_impersonate_success = function(response) {
//$window.location.reload(); // This cancels any current request
$location.path('/'); // This works as expected, if path != current_path
};
$scope.impersonate = function(username) {
return auth.impersonate(username)
.then($scope.on_impersonate_success, $scope.on_auth_failed);
};
Run Code Online (Sandbox Code Playgroud)
如果我使用$window.location.reload()
,那么一些$http
请求auth.impersonate(username)
等待响应被取消,所以我不能使用它.此外,黑客$location.path($location.path())
也不起作用(没有任何反应).
是否有另一种方法可以重新呈现页面而无需再次手动发出所有请求?