http://errors.angularjs.org/1.4.1/ngRepeat/dupes

http://errors.angularjs.org/1.4.1/ngRepeat/dupes

本文关键字:ngRepeat dupes angularjs errors http org      更新时间:2023-09-26

我是angularjs的新手,我正在angular上写博客,但在我有文章列表的部分,chrome控制台会给我这个错误,列表也不见了。我在PHP中有后端,与数据库的连接似乎还可以,因为当我写一篇新文章时,数据会进入数据库,但数据似乎不会回到前端。我试着用谷歌搜索,但找不到任何有用的信息来解决这个问题。谢谢你的建议!

http://errors.angularjs.org/1.4.1/ngRepeat/dupes?p0=blog%20in%20blogs&p1=字符串%3A%3C&p2=%3C

这里是博客前端:

<table class="table table-striped">
    <tr>
        <th>Title</th><th>Description</th><th>Added</th><th>Remove</th>
    </tr>
    <tr ng-repeat="blog in blogs">
        <td>{{ blog.title }}</td><td>{{ blog.description }}</td><td>{{ blog.added_date }}</td><td><button class="btn btn-danger" ng-click="removeData(blog.id)">x</button></td>
    </tr>
</table>

这里是角度:

    $scope.frmToggle = function() {
    $('#blogForm').slideToggle();
}
$http.get('./js/popData.php')
    .success(function(data) {
        $scope.blogs = data;
    })
    .error(function(err) {
        $log.error(err);
    })
$scope.pushData = function($params) {
    $http.post('./js/pushData.php',{'title':$params.title, 'description':$params.description})
        .success(function(data) {
            $scope.blogs = data;
        })
        .error(function(err) {
            $log.error(err);
        })
}
$scope.removeData = function($params) {
    var cnfrm = confirm("Are you sure to delete?");
    if(cnfrm) {
        $http.post('./js/removeData.php', {'id':$params})
        .success(function(data) {
            $scope.blogs = data;
        })
        .error(function(err) {
            $log.error(err);
        })
    } else {
        // 
    }
}

这样使用:

<tr ng-repeat="blog in blogs track by $index">
    <td>{{ blog.title }}</td><td>{{ blog.description }}</td><td>{{ blog.added_date }}</td><td><button class="btn btn-danger" ng-click="removeData(blog.id)">x</button></td>
</tr>

有关欺骗的详细信息,请查看AngularJs文档

我希望这对你有帮助。

从您提供的链接:

若要解决此错误,请确保集合中的项具有唯一标识或使用track by语法指定如何跟踪模型和DOM之间的关联。

上面的例子可以通过使用trackby$index来解决使项按其在数组中的位置设置关键帧,而不是它们的价值:

这可能是您的解决方案:

只需添加track by $index

<tr ng-repeat="blog in blogs track by $index">
</tr>

使用track by $index或其他唯一标识符。