AngularJS:ng-repeat列出了应该没有的数千个元素

时间:2015-04-15 09:35:47

标签: angularjs angularjs-ng-repeat

我搜索过与此类似的问题,但没有找到。我有一个服务,它为项目列表执行$ http获取,以及调用该服务并将列表绑定到$ scope的控制器。在我的页面上,我使用ng-repeat列出项目,但由于一些奇怪的原因,它列出了2473项,即使数据库中没有。

service.js

getTickits : function() {
        var deferred = $q.defer();

        $http.get('/api/tickits').success(function(data){
            deferred.resolve(data);     
        })
        .error(function(data){
            deferred.reject(data);
        });

        return deferred.promise;
    }

controller.js

$scope.tickits = [];

$scope.getTickits = function(){
    TickitService.getTickits().then(function (data) {
        $scope.tickits = data;
    })
}

$scope.getTickits();   

然后在我的页面上:

<div id = "tickit-list" class="row">
    <div class="col-sm-8 col-sm-offset-2">
        <div class="panel panel-primary" ng-repeat="tickit in tickits track by $index">

            <div class="panel-heading">
                <h4>Title: {{ tickit.title }}</h4>
            </div>

            <div class="panel-body">
                <p>Description: {{ tickit.description }}</p>
            </div>

            <div class="panel-footer">
                <a href="#" class="btn btn-primary" ng-click="deleteTickit(tickit._id)">Delete tickit</a>
            </div>

        </div>     
    </div>
</div>

我添加'track by $ index'的原因是因为没有我在chrome控制台上出现错误,说“不允许在转发器中重复”。使用'track by'表达式指定唯一键'。

我真的不知道它是如何认为有超过2千件物品所以如果有人有任何想法会非常有帮助,谢谢!

0 个答案:

没有答案