Переменная наследования от корневого контроллера с пользовательским интерфейсом в AngularJS

0

Мое приложение выполняет 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"

Как я могу заставить эту штуку работать правильно?

  • 0
    Вы пробовали этот $ scope. $ parent.personalData?
  • 0
    Да, он работает так же, как и раньше. Как только я обновляю страницу, данные исчезли, но запрос все еще сделан.
Теги:

2 ответа

0

Я знаю, почему он не работает!

Запрос $ http все еще выполняется, и DOM загружен. Таким образом, переменная пуста.

0

Это сработало для меня

установите значение в первом контроллере, используя следующий код

$scope.$emit('key', {data: value}); //to set the value

Получите значение во втором контроллере, используя следующий код

 $rootScope.$on('key', function (event, data) {}); //to get the value

или вы можете попытаться использовать методы установки

Ещё вопросы

Сообщество Overcoder
Наверх
Меню