В дополнение к
моему предыдущему вопросу
Итак, есть сервис, который вытаскивает данные с сообщениями, с определенными данными (прочитанные -satus1, не прочитанные- status2).
(function () {
'use strict';
angular
.module('app.notifications')
.factory('notificationService', notificationService);
notificationService.$inject = ['$resource'];
function notificationService($resource) {
return $resource('server/json/notifications.json', {}, {
getNotificationsData: {method: 'GET', isArray: true}
});
}
}());
В контроллере самого приложения app, я использую его так
(function () {
'use strict';
angular
.module('app.core')
.controller('HomeController', HomeController);
//Underscore в зависимости
HomeController.$inject = ['notificationService', '_'];
function HomeController(notificationService, _) {
var vm = this;
vm.showNotificationList = false;
vm.unreadNotifications = [];
vm.readNotifications = [];
activate();
// Получаем данные и отправляем их в SplitNotifications (разделяем на прочитанные и нет)
function activate() {
return getNotifications().then(function () {
SplitNotifications(vm.showNotificationList);
});
} ;
// Получаем данные из сервиса
function getNotifications() {
return notificationService.getNotificationsData()
.$promise.then(function (data) {
vm.showNotificationList = data;
return vm.showNotificationList;
});
}
;
// Разделяем данные, полученные из сервиса на два массива - прочитанных сообщений и не прочитанных
function SplitNotifications(showNotificationList) {
for (var i = 0; i < showNotificationList.length; i++) {
vm.unreadNotifications = _.filter(showNotificationList, {status:'1'});
vm.readNotifications = _.filter(showNotificationList, {status:'2'});
}
}
} ;
})();
Но мне хочется сделать отдельный модуль и перенести, как минимум, логику разделения данных - SplitNotifications в свой модуль. Вот куда мне это спрятать? Сделать контроллер модуля notifications, но как он передаст данные в приложение? или тоже засунуть в сервис notificationService?
Update В общем, сделал отдельную директиву, в ней контроллер с зависимостью от сервиса и всё.