Jak wskazały kontrolery @ezain przeładowujące tylko wtedy, gdy jest to konieczne. Innym czystszym sposobem aktualizowania danych podczas zmiany stanów, zamiast ponownego ładowania kontrolera, jest wykorzystanie zdarzeń transmisji i nasłuchiwanie takich zdarzeń w kontrolerach, które muszą aktualizować dane w widokach.
Przykład: w funkcjach logowania / wylogowania możesz zrobić coś takiego:
$scope.login = function(){
$rootScope.$broadcast("user-logged-in");
$state.go("mainPage");
};
$scope.logout = function(){
$rootScope.$broadcast("user-logged-out");
$state.go("mainPage");
};
Teraz w kontrolerze mainPage wyzwalaj zmiany w widoku, używając funkcji $ on, aby słuchać transmisji w kontrolerze mainPage w następujący sposób:
$scope.$on("user-logged-in", function(){
});
$scope.$on("user-logged-out", function(){
});