2017-02-22 1 views
1

私はテーブルに必要なデータを表示するのに問題があります。君たちは私が表示したいかを把握することができますので、私は次のスケッチをした:ng-repeat(angularjs、html)のテーブル内にデータテーブルを表示

Detalle Proyecto

を私は私のPHP/MySQLのコネクタを持っているクエリは、「proyectoのと私にそれぞれ「Tarea」のデータ(第2表)をもたらします"と" alerta "しかし、私は" proyecto "と" alerta "行ごとに1回だけ表示する必要があります。

私は最初のテーブルのデータを表示しながら、2番目のテーブル(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「Tarea」を表示していますproyectと警告ごとにすべてのタスクをまとめているわけではありません。

data

答えて

1

あなたは、この方法で名前があなたが

少し例

を繰り返したくはありません繰り返しデータである

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

あなたのデータを配置するようにしてください

のようなデータがある場合(あなたのデータが格納されていると仮定するvar datosある)

0が、これは試す

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

関連する問題