Angular 1.5预期数组但收到:使用过滤器时为0

时间:2017-05-25 18:53:24

标签: javascript angularjs

我正在创建一个表,它在显示数据时工作正常,这是代码

<tr ng-repeat="value in sd.data track by $index | orderBy: syscode">
  <td>{{($index>0 && sd.data[$index].syscode === sd.data[$index-1].syscode) ? '' : value.syscode}}</td>
  <td>{{value.out_signal_id}}</td>
  <td class="text-center no-wrapping">{{value.sig_epoch_utc}}</td>
  <td class="text-center ">{{value.num_of_signals}}</td>
  <td class="text-center no-wrapping">{{value.status_code}}</td>
  <td class="text-center no-wrapping">{{value.status_note}}</td>


 <tr >

我的问题是,当我使用&#39; orderBy:&#39;作为过滤器,我收到此错误

`Error: [orderBy:notarray] Expected array` but received: 0

我不知道为什么,我已经检查了类似的其他问题,但那些没有回答我的问题。任何反馈将不胜感激

2 个答案:

答案 0 :(得分:2)

跟踪应该在最后始终,你错过了顶点,所以这个:

<tr ng-repeat="value in sd.data | orderBy: 'syscode' track by $index">

应该是:

#thermometer .progress {
height:89.86%;
}

答案 1 :(得分:1)

the docs for ngRepeat (see the note at the bottom of the section)涵盖了这个确切的情况。基本上,track by需要是表达式中的最后一件事。

value in sd.data | orderBy: 'syscode' track by $index