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 show
en 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 show
al popdown
controlador 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
? .notifiy
método, quiero decir
popdown
directiva 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?