使用ng-if

时间:2019-05-03 09:45:26

标签: angularjs html-table

我有一个如下的数组json

$scope.array =[{"id":"1","age":"3","name":"ab"},{"id":"2","age":"2","name":"ee"},{"id":"3","age":"1","name":"dd"}];

我需要使用ng-if在表中显示这些数据,如果年龄为1,则该单元格应该只包含与age = 1等有关的数据。我使用了以下代码。

    <html>
    <table>
<tr>
<th>one</th>
<th>two</th>
<th>three</th>
<tr>
    <tr ng-repeat="record in array">
    <td ng-if="record.age == '1'">{{record.id}} {{record.name}}</td>
    <td ng-if="record.age == '2'">{{record.id}} {{record.name}}</td>
    <td ng-if="record.age == '3'">{{record.id}} {{record.name}}</td>
    </table>
    </html>

但是当前所有值都在第一列中一个接一个地显示。我不知道原因。

1 个答案:

答案 0 :(得分:1)

别忘了用结束标签关闭您的 tr 标签。像这样:

<tr>
    <th>one</th>
    <th>two</th>
    <th>three</th>
</tr>

<tr>
    <tr ng-repeat="record in array">
        <td ng-if="record.age == '1'">{{record.id}} {{record.name}}</td>
        <td ng-if="record.age == '2'">{{record.id}} {{record.name}}</td>
        <td ng-if="record.age == '3'">{{record.id}} {{record.name}}</td>
    </tr>
</tr>

但是,就您而言,使用ng-if不会一无所获。如果使用以下代码,您将获得相同的输出:

<tr>
    <th>one</th>
    <th>two</th>
    <th>three</th>
</tr>

<tr>
    <tr ng-repeat="record in array">
        <td>{{record.id}} {{record.name}}</td>
    </tr>
</tr>

如果您真的想使用ng-if,那么您的操作就可以了。