一次执行ng-repeat

时间:2019-04-12 11:58:41

标签: html angularjs

我的问题应该很简单。

如果在vm.application.obligations对象中我没有holderId == 2,我只想插入一个空行

但是我的代码是为每个vm.application.obligations插入一个空行。

如何只插入一个空行?

<tr class="text-center" ng-if="obligation.debtor.holderId != 2"
    ng-repeat="obligation in vm.application.obligations track by $index">
  <td>-</td>
  <td>-</td>
  <td>-</td>
  <td>-</td>
</tr>

2 个答案:

答案 0 :(得分:0)

将逻辑转移到javascript中并让html在不需要条件的情况下显示数据是一个好主意。 例如。 js:

vm.uiData = [];                
obligations.forEach(function (obligation) {
                    if (obligation.debtor.holderId === 2) {
                        vm.uiData.push("");
                    } else {
                        //  push to uiData what should be displayed in the normal behavior..
                }
            });

html:

<tr class="text-center" ng-repeat="text in vm.uiData track by $index">
  <td>{{text}}</td>
</tr>

答案 1 :(得分:0)

  

如果在vm.application.obligations对象中没有holderId == 2,我只想插入一个空行

<tr class="text-center" ng-if="vm.noHolderIdEq2()"
    ̶n̶g̶-̶r̶e̶p̶e̶a̶t̶=̶"̶o̶b̶l̶i̶g̶a̶t̶i̶o̶n̶ ̶i̶n̶ ̶v̶m̶.̶a̶p̶p̶l̶i̶c̶a̶t̶i̶o̶n̶.̶o̶b̶l̶i̶g̶a̶t̶i̶o̶n̶s̶ ̶t̶r̶a̶c̶k̶ ̶b̶y̶ ̶$̶i̶n̶d̶e̶x̶"̶ >
  <td>-</td>
  <td>-</td>
  <td>-</td>
  <td>-</td>
</tr>
vm.noHolderIdEq2 = function() {
    var arr = vm.application.obligations.filter(x => x.holderId == 2);
    return arr.length == 0;
};