Error: [ngRepeat:dupes] Using MEAN w/ Heroku

Error: [ngRepeat:dupes] Using MEAN w/ Heroku

我只是从数据库中获取数据并使用 ngRepeat 将其显示在 html 文件中。连接到数据库成功,我可以向其中添加数据。此外,客户端的所有内容都可以正常工作,因为我能够使用定义的数组在 ngRepeat div 中显示数据。所以问题一定出在 .get() 方法的某个地方,但我不知道它是什么。有什么建议吗?

server.js

var express = require('express');
var mongojs = require('mongojs');
var MongoClient = require("mongodb").MongoClient;
var app = express();
var port = process.env.PORT || 3000;
var db = mongojs('heroku_1x6kasdf');
var plantList = db.collection("plantList");

app.use(express.static(__dirname + "/"));

MongoClient.connect(process.env.MONGOLAB_URI, function(err, db) {
    if (err) throw err;
    console.log('SUCCESS! Connected to heroku_1x6kasdf database');

    app.get("/", function(req, res) {
        plantList
            .find({})
            .toArray(function(err, docs) {
                if (err) throw err;
                res.json(docs);
            });
    });

});



app.listen(port, function() {
    console.log('SUCCESS! Connected to ' + port);
});

controller.js

var myApp= angular.module('myApp', []);
myApp.controller('AppCtrl', ['$scope', '$http', function($scope, $http) {

    var refresh = function() {
        $http.get("/").success(function (response) {
            $scope.plantList = response;
        });
    };

    refresh();

}]);

index.html

<html ng-app="myApp">

...

<div ng-controller="AppCtrl">
    <div ng-repeat="plant in plantList">
        <p>{{plant.name}}</p>
        <p>{{plant.variety}}</p>
        <p>{{plant.quantity}}</p>
    </div>
</div>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.0/angular.min.js"></script>
<script src="controllers/controller.js"></script>
</body>
</html>

当一个对象在一个数组中被找到两次时会出现这个错误。当你没有在转发器中指定 "Track by" 时,angular 通过特殊的 属性 "$$hashKey" 来跟踪它,通常是这样的:"object:76", "object:77"等

您可以 console.log 您的数组,然后检查其中一个对象是否具有相同的 $$hashKey

按植物编号追踪。我不推荐 track by $index,因为它按位置而不是项目进行跟踪,这会导致问题。

<div ng-controller="AppCtrl">
  <div ng-repeat="plant in plantList track by plant.id">
    <p>{{plant.name}}</p>
    <p>{{plant.variety}}</p>
    <p>{{plant.quantity}}</p>
  </div>
</div>