2016-07-21 1 views
0

J'ai une fonction $ call sur $ callback sur mon contrôleur principal. partout où je l'appelle de chaque contrôleur il fonctionne parfaitement. mais quand je l'appelle d'un modalController après l'ouverture modale, il ne fonctionne pas:appel d'un événement dans le contrôleur modal

define(['app', 'jquery'], function (app, $) { 
    app.controller('MainViewControllerUser', 
     function ($scope, $location, $rootScope, $interval, MainViewFactoryUser){ 
     $scope.$on('loadingPage', function (event, value) { 
      $scope.chartLoading = value; 
     }); 
} 
}); 

// ----------------------- fin contrôleur principal

define(['app', 'underscore'], function (app, _) { 
     app.controller('advertisementController', 
      ['$scope', '$location', '$rootScope', '$interval', 'toaster', 'advertisementFactory', '$modal', 
       function ($scope, $location, $rootScope, $interval, toaster, advertisementFactory, $modal) { 
       $scope.$emit('loadingPage', true); 

    } 
    ]); 



    app.controller('addClientCrtl', 
      ['$scope', '$modalInstance', 'toaster', 'advertisementFactory', 
       function ($scope, $modalInstance, toaster, advertisementFactory) 
    { 
        $scope.$emit('loadingPage', true); 

    } 
    ]); 



    }); 

que $scope.$emit('loadingPage', true); dans le advertisementController travaille bien mais addClientCrtl ne fonctionne pas. Je dois citer que le contrôleur modal définit en adviertisementController et appeler à l'intérieur

Répondre

2

Au lieu de la portée de $ peut vous essayer $ rootScope.

$rootScope.$on('loadingPage', function ({ 
}); 

$rootScope.$emit('loadingPage', true); 
+1

simple ou '$ rootScope $ émettre ('loadingPage', true) ; 'puisque $ rootscope sera automatiquement résolu à $ scope of parent si, parent appelle contrôleur enfant dans la même portée –

+0

merci mon pote :) –