Tengo una directiva que tiene su propio controlador. Vea el siguiente código:
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'
}
});
Esto está destinado a ser un sistema de notificación de errores / notificaciones / advertencias. Lo que quiero hacer es desde otro controlador (no uno de directiva) para llamar a la función showen este controlador. Y cuando hago eso, también me gustaría que mi función de enlace detectara que algunas propiedades cambiaron y realizara algunas animaciones.
Aquí hay un código para ejemplificar lo que estoy pidiendo:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Por lo tanto, al llamar showal popdowncontrolador de la directiva, la función de enlace también debe activarse y realizar una animación. ¿Cómo podría lograr eso?
popdown.show(...)lugar de, ¿no popdown.notify(...)es así? De lo contrario, la función de notificación es algo confusa.
popdown.notify? .notifiymétodo, quiero decir
popdowndirectiva en la página? ¿Es solo en un lugar donde se supone que otros controladores tienen acceso a ella, o hay varias ventanas emergentes en diferentes lugares?