У меня есть директива с собственным контроллером. См. Код ниже:Метод вызова в директивном контроллере от другого контроллера
var popdown = angular.module('xModules',[]);
popdown.directive('popdown', function() {
var PopdownController = function ($scope) {
this.scope = $scope;
}
PopdownController.prototype = {
show:function (message, type) {
this.scope.message = message;
this.scope.type = type;
},
hide:function() {
this.scope.message = '';
this.scope.type = '';
}
}
var linkFn = function (scope, lElement, attrs, controller) {
};
return {
controller: PopdownController,
link: linkFn,
replace: true,
templateUrl: './partials/modules/popdown.html'
}
});
Эта система предназначена для уведомления об ошибках/предупреждениях/предупреждениях. Я хочу сделать это с другого контроллера (а не на директиву), чтобы вызвать функцию show
на этом контроллере. И когда я это сделаю, я также хочу, чтобы моя функция ссылок обнаружила, что некоторые свойства изменены и выполняют некоторые анимации.
Вот код, чтобы проиллюстрировать то, что я прошу:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Так при вызове show
на контроллере popdown
директивы, функция ссылка должна также быть запущен и выполнить анимацию. Как я мог это достичь?
Где вы ставите вызов на 'popdown' директивы на странице - это это просто в одном месте, где другие контроллеры должны иметь доступ к нему, или есть несколько выходов в разных местах? – satchmorun
мой index.html имеет это:
в основном есть только один экземпляр в раскрывающемся меню, как его означало быть доступны по всему миру. – user253530Я думаю, вы хотели написать 'popdown.show (...)' вместо 'popdown.notify (...)' это правильно? В противном случае функция уведомления является путаницей. – lanoxx