Ho una direttiva che ha il proprio controller. Vedere il codice seguente:
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'
}
});
Questo è pensato per essere un sistema di notifica per errori / notifiche / avvisi. Quello che voglio fare è da un altro controller (non una direttiva) per chiamare la funzioneshow
su questo controller. E quando lo faccio, vorrei anche che la mia funzione di collegamento rilevi che alcune proprietà sono cambiate ed esegua alcune animazioni.
Ecco del codice per esemplificare ciò che sto chiedendo:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Quindi, quando si chiama show
il popdown
controller della direttiva, anche la funzione di collegamento dovrebbe essere attivata ed eseguire un'animazione. Come potrei ottenerlo?
popdown.show(...)
invece di, popdown.notify(...)
è vero? Altrimenti la funzione di notifica è un po 'confusa.
popdown.notify
? .notifiy
metodo, voglio dire
popdown
direttiva sulla pagina: è solo in un punto in cui si suppone che gli altri controller abbiano tutti accesso ad esso o ci sono diversi popup in luoghi diversi?