У меня есть функция $ scope. $ On callback на моем mainController. где бы я ни называл это с каждого контроллера, он отлично работает. но когда я вызываю это из modalController после открытия модального, он не работает:
define(['app', 'jquery'], function (app, $) {
app.controller('MainViewControllerUser',
function ($scope, $location, $rootScope, $interval, MainViewFactoryUser){
$scope.$on('loadingPage', function (event, value) {
$scope.chartLoading = value;
});
}
});
/ / ----------------------- конец главного контроллера
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);
}
]);
});
что $scope.$emit('loadingPage', true);
в advertController работает хорошо, но в addClientCrtl не работает. Я должен процитировать, что модальный контроллер определяет в adviertisementController и вызывает внутри него
Вместо $ scope вы можете попробовать $ rootScope:
$rootScope.$on('loadingPage', function ({
});
$rootScope.$emit('loadingPage', true);
$rootScope.$emit('loadingPage', true);
так как $ rootscope автоматически преобразуется в $ scope для parent if, parent вызывает дочерний контроллер в той же области