0

First Controller:

$rootScope.$broadcast("CallParentMethod", {});

Second Controller:

$rootScope.$on("CallParentMethod", function() {
    $scope.getUserDetails();
})
$scope.getUserDetails = function() {
    HttpService.get("/customer/" + nationalId).then(function(resp) {
        if (resp.status == 'success') {
            console.log(resp.result)
            $rootScope.county_name = angular.copy(resp.result.county)
            $rootScope.campaign_name = angular.copy(resp.result.campaign)
            console.log($rootScope.campaign_name)
        }
    });
};
Sachila Ranawaka
  • 39,756
  • 7
  • 56
  • 80

1 Answers1

0

there's a mix of $scopes there

there is this event fired

$rootScope.$broadcast("CallParentMethod", {});

therefore you should be listening for this event in a child $scope, but you're listening to it in $rootScope

$rootScope.$on("CallParentMethod", function() {
    $scope.getUserDetails();
})

you might want to listen for it in the same scope in which getUserDetails() is defined

$scope.$on("CallParentMethod", function() {
    $scope.getUserDetails();
})

Another hint: if you don't need to pass any parameters, you can ignore the empty object {} when $broadcasting

$rootScope.$broadcast("CallParentMethod")
Gonzalo.-
  • 12,512
  • 5
  • 50
  • 82