ng-repeat多次附加数据

时间:2015-07-14 13:41:24

标签: javascript angularjs

HTML

<div ng-app="templeApp" ng-controller="templeList">
                <div ng-repeat="temple in temples track by $index" >

                    <h2>{{temple.strTempleName}}</h2>
                    <h4>{{temple.strTempleDescription}}</h4>
                    <h4>5km from current location</h4>
        </div>  
    </div>

JS

 var templeApp = angular.module('templeApp', [])
.controller('templeList',function($scope,$http){
    $scope.temples = [{"_id":"new","strTempleName":"Temple 1 Name","strTempleDescription":"Temple 1 description","strContactNumber":"+91899999999","strTempleLocation":"Chennai","iTempleRating":5,"strContactPersonName":"","strTempleCoordinates":""}] ;
    $http.get("https://gist.githubusercontent.com/vigneshvdm/d106ea482a792c60dff8/raw/c8f020eb54c4068e40884b8d84c972d92e8e4e08/vicky%20test%20file").success(function(data){
        $scope.temples = data[0];  //uncomment this line to see error
        console.log(data[0]);
    });
});

问题

当我评论$scope.temples = data[0];行时,ne-repeat只附加一次数据,但是当我将数据分配给$ scope.temples时,它会多次追加相同的数据

DEMO LINK

1 个答案:

答案 0 :(得分:3)

删除ng-repeat中的track by $index并更改下面的内容

在这个例子中,我使用temple.strTempleName进行过滤跟踪,确保它返回唯一的名称。

<div ng-app="templeApp" ng-controller="templeList">
      <div ng-repeat="temple in temples track by temple.strTempleName" >
            <h2>{{temple.strTempleName}}</h2>
            <h4>{{temple.strTempleDescription}}</h4>
            <h4>5km from current location</h4>
      </div>  
  </div>