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 show
auf 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 show
den popdown
Direktiven-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
? .notifiy
Methode, ich meine
popdown
Direktive 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?