У мене є директива, яка має власний контролер. Дивіться код нижче:
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'
}
});
Це означає систему сповіщення про помилки / сповіщення / попередження. Що я хочу зробити, це викликати функцію show
на цьому контролері від іншого контролера (не директивного) . І коли я це роблю, я також хотів би, щоб моя функція зв’язку виявляла, що деякі властивості змінювалися, і виконувала деякі анімації.
Ось код, який пояснює те, про що я прошу:
var app = angular.module('app', ['RestService']);
app.controller('IndexController', function($scope, RestService) {
var result = RestService.query();
if(result.error) {
popdown.notify(error.message, 'error');
}
});
Тому при виклику show
на popdown
директиви управління, функція посилання повинне також бути запущений і виконати анімацію. Як я міг цього досягти?
popdown.show(...)
замість цього, чи popdown.notify(...)
не так? Інакше функція сповіщення є дещо заплутаною.
popdown.notify
? .notifiy
метод, я маю на увазі
popdown
директиви на сторінці - це лише в одному місці, де мають бути доступні інші контролери, чи є кілька спливаючих вікон у різних місцях?