Chame método em controlador de diretriz de outro controlador

Eu tenho uma diretiva que tem seu próprio controlador. Veja o código abaixo:

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'
    }

});

Isso deve ser um sistema de notificação para erros / notificações / avisos. O que eu quero fazer é de outro controlador (não uma diretiva) para chamar a funçãoshow neste controlador. E quando eu faço isso, eu também quero que minha função de link detecte que algumas propriedades sejam alteradas e executem algumas animações.

Aqui está algum código para exemplificar o que estou pedindo:

var app = angular.module('app', ['RestService']);

app.controller('IndexController', function($scope, RestService) {
    var result = RestService.query();

    if(result.error) {
        popdown.notify(error.message, 'error');
    }
});

Então, ao chamarshow nopopdown controlador de diretiva, a função de link também deve ser acionada e executar uma animação. Como eu poderia conseguir isso?

questionAnswers(4)

yourAnswerToTheQuestion