不同状态之间如何使用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;
});
我有函数 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;
});