无法以角度显示ng-repeat中的数据

时间:2017-01-04 04:34:36

标签: jquery angularjs

我有这样的数据:

enter image description here

这是有角度的html:

<tr ng-repeat="item in orders">
            <td>{{item.name}}</td>
            <td>{{item.city}}</td>
        </tr>

我不知道为什么它无法显示数据,调试后没有错误。

请帮助我。谢谢

2 个答案:

答案 0 :(得分:5)

您希望您的数据如下所示:

$scope.orders = [ { item }, { item } ];

但它真的更像是这样:

$scope.orders = [ [ { item } ], [ { item } ] ]

请注意每个订单周围都有一个额外的数组。

基本上有3种方法可以解决这个问题

1。您可以在模板

中解决此问题

您只需要在模板中访问Array内部。你可以改变

<tr ng-repeat="item in orders">
    <td>{{item.name}}</td>
    <td>{{item.city}}</td>
</tr>

<tr ng-repeat="item in orders">
    <td>{{item[0].name}}</td>
    <td>{{item[0].city}}</td>
</tr>

2。您可以在Controller

中解决此问题

通过在控制器中检索/创建数据后更新数据,可以通过从每个item中删除数组来使数据形状正确。

$scope.orders = myOrders.map(function(item){
  return item[0];
});

3。您可以在数据源中修复此问题

我不知道您的API或数据源是什么,但如果您可以控制它,您可以更新它,以便将数据以您想要的形状发送到Angular应用程序。

答案 1 :(得分:2)

由于你有一个额外的嵌套数组包装每个对象,你需要修复源或映射数据以删除额外的数组

$scope.orders = data.map(function(arr){
     return arr[0];
})