这可能是一个非常基本的问题,但我希望Stackoverflow的大师们能够提供全面和有教育意义的答案。
当我按下角度应用程序中的后退按钮时,控制器是否会再次从后端获取数据?是否有可能避免这种情况,只是加载之前页面中的内容,包括它所具有的各种状态,例如表中行的排序?
由于
答案 0 :(得分:1)
更改路线时,附加的控制器功能将重新运行。在您的控制器或服务内部,无论是获取数据,您都可以将内容保存到父作用域,例如$rootScope
,或者您可以保存到browser session storage,并检查是否有这些内容在获取数据之前已填充。
function controller ($scope, $rootScope, $http) {
if (! $rootScope.savedData) {
$http.get('data').success(function (data) {
$rootScope.savedData = data;
$scope.data = data;
});
}
else $scope.data = $rootScope.savedData;
}