У меня есть функция editPrcChallenge
, где я направляю пользователя в состояние ребенка и вещание challengekey
, Broadcast вызывает, но не входит в функцию, Любая идея, что я внедрил неправильно?Как использовать трансляцию AngularJS между различными состояниями?
До сих пор пытался код ....
parent.js
$scope.editPrcChallenge = function (challengeKey) {
$scope.$broadcast('editPrcChallenge',challengeKey);
$state.go('app.editChallenge',{processId:$stateParams.processId,challengeKey:challengeKey});
};
child.js
$scope.$on('editPrcChallenge', function (s,challengeKey){
console.log(challengeKey);
$scope.editMode = true;
// $scope.clearFields = clearForm();
processFactory.getProcessChallengeInfo(challengeKey)
.then(function(response){
$scope.challengesDTO =response.data;
$scope.showEscalation = !!$scope.challengesDTO.challengeDesLkupCode;
});
};
Состояние штата «app.editChallenge», состояние ребенка? И если да, пытаетесь ли вы транслировать событие из родительского представления, а THEN переходите к дочернему виду, кто, как вы ожидаете, должен обработать трансляцию события? – GPicazo
Вы сразу же переходите к состояниям после трансляции события. Если ребенок находился в DOM, я думаю, что его $ scope уничтожен до того, как будет запущен прослушиватель событий. Если ребенок входит в дом из-за изменения состояния, возможно, это может быть тот ребенок еще не находится в DOM. Изменение состояний сразу после этого вещания немного сложно рассуждать. – m59