Мое приложение выполняет HTTP-вызов, результат сохраняется в переменной в области.
angular.module('simfraAppController', [])
.controller('simfraController', ['$scope', 'RetrieveInformation', 'RetrieveTaxInformation', 'ErrorModal',
function ($scope,RetrieveInformation, RetrieveTaxInformation, ErrorModal) {
$scope.formData = {};
RetrieveInformation.then(function success(response) {
$scope.personalData = response.data.data;
}, function error(response) {
ErrorModal();
});
RetrieveTaxInformation.then(function success(response) {
$scope.taxData = response.data.data;
}, function error(response) {
ErrorModal();
});
}
]);
.state('landing', {
url: "/",
templateUrl: "simfra/dashboard.html"
})
В этом контроллере выполняется вызов и sto в переменной.
Это мой другой контроллер
.controller('SimfraDirectDebitApplicationController', ['$scope', '$rootScope', '$state', 'Command', 'uuid4',
function ($scope, $rootScope, $state, Command, uuid4) {
console.log($scope.personalData);
});
.state('direct_debit_application', {
url: "/incassoaanvraag",
templateUrl: "simfra/direct-debit-application/inquiry.html"
})
Конечно, я вложил html.
<body data-ng-controller="simfraController">
<div data-ng-controller="SimfraDirectDebitApplicationController">
</div>
</div>
Моя проблема заключается в том, когда я запускаю приложение через маршрут по умолчанию "/", и я перехожу к маршруту "direct_debit_application", все это отлично работает.
НО, когда я перезагружаю страницу, запрос все еще выполняется (насколько я могу видеть в консоли), но переменная "undefined"
Как я могу заставить эту штуку работать правильно?
Я знаю, почему он не работает!
Запрос $ http все еще выполняется, и DOM загружен. Таким образом, переменная пуста.
Это сработало для меня
установите значение в первом контроллере, используя следующий код
$scope.$emit('key', {data: value}); //to set the value
Получите значение во втором контроллере, используя следующий код
$rootScope.$on('key', function (event, data) {}); //to get the value
или вы можете попытаться использовать методы установки