使用ng-repeat的表中矩阵的每一行

时间:2016-05-08 23:04:08

标签: javascript angularjs matrix

我有一个json对象矩阵,我从服务器和客户端获取它,我想用矩阵的每一行构建一个表。 我不知道如何使用角度指令ng-repeat来做到这一点 谢谢你的帮助

这是app.js

 $scope.inspectionEnCoursDinspection=[];
$http.get("http://localhost:8080/projet/getInspectionEnCoursDinspection").success(function (data, status, headers, config) {

     $scope.inspectionEnCoursDinspection1=data;
})

这是我的html页面

<table class="table table-bordered">
<tr ng-repeat="insp in inspectionEnCoursDinspection1 | orderBy: 'tests.length':'reverse' ">
<td>Mat{{insp.vehicule.matricule}}</td>
<td><div ng-repeat="aa in insp.tests">
Test<ul><li ng-repeat="defaut in aa.defauts">{{defaut.nomDefaut}}</li></ul>
</div>
</td>
</table

这是矩阵

中的一个json对象
[{"idInspection":15,"debutInspection":null,"finInspection":null,"valide":false,"dateInspection":1462750361452,"produit":{"idProduit":1,"nomProduit":"Réinspection"},"ligne":{"idLigne":5,"description":"DES LIGNE 1","bancs":[{"idBanc":12,"description":"BANC1","ordre":1,"bancType":{"idBancType":6,"defauts":[{"idDefaut":7,"nomDefaut":"DEFAUT1"}],"description":"TYBE BANC 1"}},{"idBanc":13,"description":"BANC2","ordre":2,"bancType":{"idBancType":9,"defauts":[{"idDefaut":10,"nomDefaut":"DEFAUT4"},{"idDefaut":11,"nomDefaut":"DEFAUT5"}],"description":"TYBE BANC 2"}}],"numligne":1},"inspecteur":null,"tests":[{"idTest":16,"dureeTest":null,"testValide":false,"defauts":[{"idDefaut":7,"nomDefaut":"DEFAUT1"}]}],"termine":false,"vehicule":{"idVehicule":14,"matricule":11,"couleur":"3","carburant":"option1","modelVehicule":{"idModel":8,"marque":"MARQUE1","model":"MODEL1"}}}]

1 个答案:

答案 0 :(得分:0)

因此,您的代码所做的是为 inspectionEnCoursDinspection1 数组中的每个 insp 对象创建一个表格行。

然后在该行中为 insp.vehicule.matricule

创建一个单元格

然后制作另一个单元格并使用 insp.tests 中的一些列表填充它 其中每个列表都包含 aa 中每个项目的多个点数。

这里有一些事情。首先,您的<tr>标记永远不会关闭。即在</tr>

之前需要</table>标签

接下来我认为你想要每个列表有多个单元格。在这种情况下你应该有;

<td ng-repeat="aa in insp.tests">Test
    <ul>
       <li ng-repeat="defaut in aa.defauts">{{defaut.nomDefaut}}</li>
    </ul>
</td>

这样你就会重复元素,这就是表格中单元格的原因。

所以你的最终代码应该是这样的。

<table class="table table-bordered">
    <tr ng-repeat="insp in inspectionEnCoursDinspection1 | orderBy: 'tests.length':'reverse' ">
        <td>Mat{{insp.vehicule.matricule}}</td>
        <td ng-repeat="aa in insp.tests">Test
            <ul>
                <li ng-repeat="defaut in aa.defauts">{{defaut.nomDefaut}}</li>
           </ul>
        </td>
    </tr>
</table>

修改: 您可能遇到的另一个问题是,在您的第一次重复重复中,您有:

  

| orderBy:&#39; tests.length&#39;:&#39;反向&#39; &#34;

你不希望引用&#39;反向&#39;。它应该是:

<tr ng-repeat="insp in inspectionEnCoursDinspection1 | orderBy: 'tests.length':reverse "