2015-11-27 2 views
0

Мое приложение выполняет http-вызов, результат сохраняется в переменной в области.Наследование переменной от корневого контроллера с ui-view в AngularJS

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" 
}) 

В этом контроллере производится вызов и сто в переменной.

Это мой другой контроллер

.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" 
}) 

Ofcourse я вложенные в HTML.

<body data-ng-controller="simfraController"> 
    <div data-ng-controller="SimfraDirectDebitApplicationController"> 
    </div> 
</div> 

Моя проблема в том, когда я инициализации приложения корыта маршрут по умолчанию «/» и я перейти к маршруту «direct_debit_application» все это прекрасно работает.

НО, когда я перезагрузить страницу, запрос еще сделал (насколько я могу видеть в консоли), но переменная «не определено»

Как я могу получить эту вещь, чтобы работать должным образом?

+0

Вы пробовали этот $ scope. $ Parent.personalData? – murnax

+0

Да, у меня есть, он работает так же, как и раньше. Как только я обновляю страницу, данные исчезнут, но запрос все еще сделан. –

ответ

0

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

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

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

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

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

или вы можете попробовать геттер сеттер методы тоже

0

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

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

Смежные вопросы