2016-07-21 23 views
0

Ich habe eine $ scope. $ Auf Callback-Funktion auf meinem mainController. wo immer ich es von jedem Controller aus nenne, es funktioniert perfekt. aber wenn ich es von einem modalController rufe nach modal öffnen, es funktioniert nicht:Aufruf eines Ereignisses im modalen Controller

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

// ----------------------- Ende Haupt-Controller

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

    } 
    ]); 



    }); 

dass $scope.$emit('loadingPage', true); im advertisementController schön funktioniert, aber in addClientCrtl funktioniert nicht. Ich habe, dass modale Controller zu zitieren in adviertisementController definieren, und ruft in ihm

Antwort

2

Statt $ scope kann $ rootScope versuchen.

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

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

oder einfach '$ rootScope $ emittieren ('loadingPage', true) ; 'da $ rootscope automatisch zu $ ​​scope von parent auflöst, wenn eltern child controller in demselben scope aufruft –

+0

danke kumpel :) –