ng-repeat不起作用

时间:2017-03-09 19:01:16

标签: javascript angularjs

我有这样的数组 ["2017-03-09 ": Array[6], "2017-03-10 ": Array[2]]

在执行ng-repeat时无效:

<div ng-repeat="total in sortedOrders">
    <div class="col-75">{{total.id}}</div>
</div>

fiidle demo

consoled image of array

请帮忙。

5 个答案:

答案 0 :(得分:0)

["2017-03-09 ": Array[6], "2017-03-10 ": Array[2]]不是数组的语法。

数组是一系列以逗号分隔的值,如下所示:

['one', 'two', 'three']

如果您想存储一系列键值对,则应使用对象:

{
   one: 1,
   two: 2,
   three: 3
}

答案 1 :(得分:0)

您必须对此对象使用两个ng-repeat,因为您在对象内部有数组,并且这些数组也包含对象。 所以首先ng-repeat遍历对象的所有外部值,这个值是一个数组,因此内部循环遍历每个对象的数组,并将对象的id值放入div中。

   <div ng-repeat="inner in sortedOrders">
       <div ng-repeat="total in inner">
          <div class="col-75">{{total.id}}</div>
       </div>
    </div>

答案 2 :(得分:0)

你有一个数组里面的数组,我从你的安慰图像得到的。 为此,如果要显示所有元素,则必须使用两个ng-repeat循环。

答案 3 :(得分:0)

我认为你正在创建这样的数组: `

var specialArray = [];
  // assigning values to corresponding keys
  specialArray["Main"] = [{id:1}];
  specialArray["Guide"] = [{id:2},{id:3}];

`

但角度模板无法识别(检查我的plunker)。尝试使用普通对象(也可以使用plunker中的示例)。

在您的JSFidlle更改中:

$scope.sortedOrders= []; 
    to 
$scope.sortedOrders= {};

并使用:

<div ng-repeat="(d,value) in sortedOrders">
     {{value}}
   </div>

示例:Plunker

答案 4 :(得分:0)

在您的plunker中编辑,如:

<div ng-app>
  <h2></h2>
  <div ng-controller="TodoCtrl">
   <div ng-repeat="d in sortedOrders">
     <div ng-repeat="(f,value) in d">
     {{value.id}}
     </div>
   </div>
</div>

$scope.sortedOrders=[]; to $scope.sortedOrders={};

您将在HTML页面中打印您的ID