不同状态之间如何使用AngularJS广播?

How to use AngularJS broadcast between different states?

我有函数 editPrcChallenge,我在其中将用户路由到子状态并广播 challengekey,广播正在调用,但它没有进入函数内部,知道我实施错了什么吗?

到目前为止尝试过的代码....

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

感谢您调查我的问题,我已经解决并更新了我的问题,基本上我需要添加 challengeKey,因为 $stateParams 现在广播正在工作并在子 $scope 中获取 challengeKey。

$scope.editPrcChallenge = function (challengeKey) {
       $scope.$broadcast('editPrcChallenge',challengeKey);
       $state.go('app.editChallenge',{processId:$stateParams.processId,challengeKey:challengeKey});
    };


 if($stateParams.challengeKey) {
        console.log($stateParams.challengeKey);
             $scope.editMode = true;
            // $scope.clearFields = clearForm();
             processFactory.getProcessChallengeInfo($stateParams.challengeKey).then(function(response){
                  $scope.challengesDTO =response.data;
                  $scope.showEscalation = !!$scope.challengesDTO.challengeDesLkupCode;
                });