ng-repeat仅显示第一个迭代数据

时间:2015-12-06 17:42:31

标签: javascript angularjs ng-repeat

我有这个非常奇怪的问题。我已经搜索了有关此问题的答案,但它们似乎并不是解决方案。重复一个会产生两个div的对象(在这种情况下),其中每个div都有一些li-s内的项目。但是,它不起作用。

HTML代码          

<head>
  <title>Orari</title>
</head>

<body ng-controller="OrariController as cont">
  <script type="text/javascript" src="angular.min.js"></script>
  <script type="text/javascript" src="orari.js"></script>

  <div ng-repeat="orariDites in cont.OrariJaves">
    <ul ng-repeat="orari in orariDites">
      <li>{{orari}}</li>
    </ul>
  </div>
</body>

</html>

JavaScript代码(本例中为Orari.js)

var app = angular.module("OrariT", []);

app.controller('OrariController', function(){
    this.OrariJaves = Ditet;
});

var Ditet ={
    Hene: ['Ekonomi','Histori', 'TIK', 'Letersi','Biologji', 'Fizike'],
    Marte: ['Letersi','Anglisht', 'Matematike Gjer.', 'Gjermanisht','Gjermanisht', 'Kimi', 'Fizike'],
};

我附上了一个Plunker,你可以找到here。这个问题也可以在这里看到。

2 个答案:

答案 0 :(得分:1)

你的内部ng-repeat应该使用track by $index,因为在遍历数组的第二个元素时,它的值为Gjermanisht两次。这会产生角度ngRepeat dupes错误。

<强> HTML

<div ng-repeat="orariDites in cont.OrariJaves">
  <ul ng-repeat="orari in orariDites track by $index">
    <li>{{orari}}</li>
  </ul>
</div>

答案 1 :(得分:0)

运行plunker后打开控制台表明它不喜欢你在数组中有重复的字符串

不允许在转发器中重复。使用'track by'表达式指定唯一键。 Repeater:orari in orariDites,Duplicate key:string:Gjermanisht,重复值:Gjermanisht http://errors.angularjs.org/1.4.8/ngRepeat/dupes?p0=orari%20in%20orariDites&p1=string%3AGjermanisht&p2=Gjermanisht

如果我从Ditet.Marte数组中移除第二个“Gjermanisht”,它似乎可以像预期的那样工作。