J'ai une directive qui a son propre contrôleur. Voir le code ci-dessous:
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'
}
});
Il s'agit d'un système de notification des erreurs / notifications / avertissements. Ce que je veux faire, c'est à partir d'un autre contrôleur (pas de directive) pour appeler la fonction show
sur ce contrôleur. Et quand je fais cela, je voudrais également que ma fonction de lien détecte que certaines propriétés ont changé et exécute certaines animations.
Voici un code pour illustrer ce que je demande:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Ainsi, lors de l'appel show
au popdown
contrôleur de directive, la fonction de liaison doit également être déclenchée et effectuer une animation. Comment pourrais-je y parvenir?
popdown.show(...)
au lieu de popdown.notify(...)
ça, n'est-ce pas? Sinon, la fonction de notification est un peu déroutante.
popdown.notify
? .notifiy
méthode, je veux dire
popdown
directive sur la page - est-ce juste à un endroit où les autres contrôleurs sont censés tous y avoir accès, ou y a-t-il plusieurs fenêtres contextuelles à différents endroits?