2017-02-22 31 views
1

У меня возникают проблемы с отображением данных, которые я хочу в таблицах. Я сделал следующий эскиз, чтобы вы, ребята, можете понять, что я хочу для отображения:Отображение таблицы данных внутри таблицы с помощью ng-repeat (angularjs, html)

Detalle Proyecto

Запрос я имею в моем разъеме PHP/MySQL приносит мне каждый данные «Фаарея» (вторая таблица) с «PROYECTO »и« alerta », но мне нужно отображать« proyecto »и« alerta »только 1 раз в строке.

Так я сделал это в угловом формате для хранения данных второй таблицы (Tarea, Termino, Estado, Nombre), в то время как я отображаю данные первой таблицы.

scope.llamada1 = function() { 

    $http.get("conector.php?tipoDato=query1") 
    .then(function(response) { 
     $scope.mensajeEspera = ""; 
     $scope.datos1 = response.data; 

     for(var i = 0; i < $scope.datos1.length; i++){ 
      var currentObj = $scope.datos1[i]; 
      $scope.datos1[i].detalleProyecto = [{ 
       "tarea":currentObj.tarea , 
       "fecha_termino":currentObj.fecha_termino , 
       "estado":currentObj.estado, 
       "nombre_completo":currentObj.nombre_completo}]; 
     } 
    }); 
} 

И в HTML я получить данные, как это, с таблицей внутри последнего:

<table id="tablaTareas" class="table table-striped table-bordered" > 
    <thead> 
     <tr> 
     <td><b>Proyecto</b></td> 
     <td><b>Alerta</b></td> 
     <td><b>Tareas</b></td> 
     </tr> 
    </thead> 
    <tbody> 
     <tr ng-repeat="x in datos1 "> 
      <td style="vertical-align: top;">{{x.proyecto}}</td> 
      <td style="vertical-align: top;">{{x.alerta}}</td> 
      <td style="vertical-align: top;"> 
      <table class="table table-striped table-bordered" > 
       <thead> 
        <tr> 
         <td><b>Tarea</b></td> 
         <td><b>Termino</b></td> 
         <td><b>Estado</b></td> 
         <td><b>Responsable</b></td> 
        </tr> 
       </thead> 

       <tbody> 
        <tr ng-repeat="y in x.detalleProyecto track by $index"> 
         <td>{{y.tarea}}</td> 
         <td>{{y.fecha_termino}}</td> 
         <td>{{y.estado}}</td> 
         <td>{{y.nombre_completo}}</td> 
        </tr> 
       </tbody> 
      </table> 
      </td> 
     </tr> 
    </tbody> 
</table> 

Но повторяет «PROYECTOS» и «Alerta» и отображения 1 «Фаарея» в строке и не каждая задача вместе для каждого проекта и предупреждения, пример ниже.

data

ответ

1

вы должны попытаться организовать ваших данные этого пути

[ 
{ 
    name: nombre_completo, 
    data: [ 
     { 
      tarea, 
      fecha_termino, 
      estado 
     } 
     ] 
} 
] 

где имя неоднократных данных, которые вы не хотите повторить

немного примера

если у вас есть данные, такие как

[{country: Chile, name: Martin},{country: Chile, name: Nico},{country: Peru, name: Seba},{country: Peru, name: Nicole},{country: Argentina, name: Warencita}] 

попробовать это (при условии, вар Datos где ваши данные хранятся)

var datos = [{country: 'Chile', name: 'Martin'},{country: 'Chile', name: 'Nico'},{country: 'Peru', name: 'Seba'},{country: 'Peru', name: 'Nicole'},{country: 'Argentina', name: 'Warencita'}] 

var temp = [] 
var exists 
var place 

for(var i = 0; i < datos.length; i++){ 
    exists = false; 
    for(var k = 0; k < temp.length; k++){ 
     if(datos[i].country === temp[k].country){ 
      exists = true; 
      place = k; 
      break; 
     } 
    } 

    if(exists){ 
     temp[place].data.push({ 
      name: datos[i].name 
     }) 
    }else{ 
     temp.push({ 
      country: datos[i].country, 
      data: [{ 
       name: datos[i].name 
      }] 
     }) 
    } 
} 
+0

но как вы хранения данных? Что я могу сделать, чтобы значение dosnt повторялось? – frager0

+0

вы должны перебирать массив, искать повторяющиеся данные -> если он уже существует, вы берете данные (tarea, fecha_termino, estado) и вставляете их внутри другого массива внутри объекта, если он не существует, вы должны создать другой объект и нажмите его на массив – viralrf

+0

, вы просветите меня, большое спасибо за ваш пример. Я пробовал это первым делом с утра – frager0