angular.module('focaCabeceraFacturador') .controller('focaCabeceraFacturadorController', [ '$scope', '$filter', function($scope, $filter) { $scope.showCabecera = true; $scope.cabeceras = [ cabecera = { cabeceras: [] } ]; $scope.$on('addCabecera', function(event, data) { var seccion = $scope.cabeceras[0]; if (data.seccion) { seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; if (!seccion) { seccion = {} seccion.seccion = data.seccion; seccion.cabeceras = []; $scope.cabeceras.push(seccion); } } var propiedad = $filter('filter')(seccion.cabeceras, { label: data.label }, true); if (propiedad.length === 1) { propiedad[0].valor = data.valor; } else { seccion.cabeceras.push({label: data.label, valor: data.valor}); } }); $scope.$on('removeCabecera', function(event, data) { var seccion = $scope.cabeceras[0]; if (data.seccion) { seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; } var propiedad = $filter('filter')(seccion.cabeceras, {label: data}, true); if (propiedad.length === 1) { seccion.cabeceras.splice(seccion.cabeceras.indexOf(propiedad[0]), 1); } }); $scope.$on('cleanCabecera', function(event, data) { if (!data) { $scope.cabeceras = [ cabecera = { cabeceras: [] } ]; } else { var seccion = $filter('filter')($scope.cabeceras, { seccion: data.seccion }, true)[0]; $scope.cabeceras.splice($scope.cabeceras.indexOf(seccion), 1) } }); }]);