Ich habe eine Direktive, die einen eigenen Controller hat. Siehe den folgenden Code:
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'
}
});
Dies soll ein Benachrichtigungssystem für Fehler / Benachrichtigungen / Warnungen sein. Ich möchte von einer anderen Steuerung (keine Direktive) die Funktion showauf dieser Steuerung aufrufen . Und wenn ich das mache, möchte ich auch, dass meine Link-Funktion erkennt, dass sich einige Eigenschaften geändert haben, und einige Animationen ausführt.
Hier ist ein Code, der veranschaulicht, wonach ich frage:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Wenn Sie also showden popdownDirektiven-Controller aufrufen , sollte auch die Link-Funktion ausgelöst werden und eine Animation ausführen. Wie könnte ich das erreichen?
popdown.show(...)anstatt popdown.notify(...)ist das richtig? Ansonsten ist die Benachrichtigungsfunktion etwas verwirrend.
popdown.notify? .notifiyMethode, ich meine
popdownDirektive auf der Seite auf - befindet sich nur an einer Stelle, an der alle anderen Controller Zugriff darauf haben sollen, oder gibt es mehrere Popdowns an verschiedenen Stellen?