У меня есть три контроллера: Parent и Child1 и Child2. Child1 и Child2 - это вкладки внутри родительского контроллера.
<div ng-controller="parent">
<!-- some HTML -->
<div ng-controller="child1"></div>
<div ng-controller="child2"></div>
<!-- Keeping the code minimal for tab. Otherwise its long code -->
</div>
Родительский контроллер вызывает службу, чтобы получить некоторые данные, а затем передает событие. Ребенок слушает это событие, получает данные и выполняет необходимые действия.
Но иногда мой дочерний прослушиватель не регистрируется, когда родительское событие получает широковещательную передачу (поэтому прослушиватель в дочернем элементе не будет работать). Используется функция тайм-аута для того же, чтобы задержать трансляцию событий, но она портится при медленном интернет-соединении. Есть ли способ убедиться, что мое прослушивание трансляции всегда запускается после регистрации моего дочернего слушателя. Ниже приведен следующий код на данный момент
.controller('parent',function($scope,$timeout,someService,){
someService.then(function(fetchData){
$timeout(function () {
$scope.$broadcast('someEvent',fetchData);
},300);
})
})
.controller('child1',function($scope){
//Some initializations
$scope.$on('someEvent', function(event, fetchData) {
//some work based on fetchData
});
})
Я новичок в angularJS и не нашел подходящего решения в Интернете. Пожалуйста, направляйте. Заранее спасибо :)
child
контроллер? Я имею в виду дочерний шаблон с контроллером? - person Pankaj Parkar   schedule 12.08.2015