menuService.js
/* global app */
app.service('menuService', ['$http', '$q', function ($http, $q) {
var defered = $q.defer();
var promise = defered.promise;
var menuInfo = {
idOrganismo: 1,
idUsuario: 2,
usuarioLogueado: 'gkuchen'
};
var _findOrganismosXUsuario = function (idUsuario) {
var deffered = $q.defer();
var url = "api/organismo?idUsuario=" + idUsuario;
$http.get(url).success(function (data, status, headers, config) {
deffered.resolve(data);
}).error(function (data, status, headers, config) {
deffered.reject();
});
return deffered.promise;
};
setIdOrganismo = function (idOrganismo) {
menuInfo.idOrganismo = idOrganismo;
defered.resolve(menuInfo);
};
var getMenuInfo = function () {
return promise;
};
return {
getOrganismosXUsuario: _findOrganismosXUsuario,
setIdOrganismo: setIdOrganismo,
getMenuInfo: getMenuInfo
};
}]);
cuando en el aside se selecciona un organismo, se emite lo siguiente
$rootScope.$broadcast("organismo:seleccionado", {idOrganismo: $scope.idOrganismoSeleccionado});
cuando necesito la informacion de usuario, organismo etc desde algun controlador o servicio, inyecto menuService y llamo a
menuService.getMenuInfo().then(function (info) {
/*
var info = {
idOrganismo: 1,
idUsuario: 1859,
usuarioLogueado: 'gkuchen'
};
*/
});