javascript - AngularJS - ngrepeat 错误中的重复键

标签 javascript angularjs angularjs-ng-repeat

我想在我的 View 中解析这个 Controller :

testapp.controller("searchController", function($scope, $rootScope, $http, $location) {

    var load = function() {
        console.log('call load()...');

        var url = 'products.json';

          if($rootScope && $rootScope.appUrl) {
                url = $rootScope.appUrl + '/' + url;
              }

        $http.get(url)
         .success(function(data, status, headers, config) {
      $scope.product = data;
      angular.copy($scope.product, $scope.copy);
         });
    }

    load();



});

但是我已经实现了这样的解析:

<div class="container main-frame" ng-app="testapp"
    ng-controller="searchController" ng-init="init()">
    <h1 class="page-header">Products</h1>
    <table class="table">
        <thead>
            <tr>
                <th width="25px">ID</th>
                <th>TITLE</th>
                <th>PRICE</th>
                <th>Description</th>
                <th width="50px"></th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="p in product">
                <td>{{p.id}}</td>
                <td>{{p.title}}</td>
                <td>{{p.price}}</td>
                <td>{{p.description}}</td>
                <!-- ng-show="user.id &&user.id==e.user_id" -->
            </tr>
        </tbody>
    </table>
    <!-- ng-show="user.username" -->
    <p>
</div>

我目前得到的是:

Error: [ngRepeat:dupes] http://errors.angularjs.org/1.2.8/ngRepeat/dupes?p0=p%20in%20product&p1=string%3A%22
    at Error (native)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:6:449
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:184:445
    at Object.fn (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:99:371)
    at h.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:100:299)
    at h.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:103:100)
    at f (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:67:98)
    at E (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:71:85)
    at XMLHttpRequest.v.onreadystatechange (https://ajax.googleapis.com/ajax/libs/angularjs/1.2.8/angular.min.js:72:133) 

我尝试将其更改为:

按 $id 在产品中p

这给了我一个语法错误

感谢您的建议!

最佳答案

试试这个

<tr ng-repeat="p in product track by $index">
      <td>{{p.id}}</td>
      <td>{{p.title}}</td>
      <td>{{p.price}}</td>
      <td>{{p.description}}</td>
</tr>

Usage of track by

关于javascript - AngularJS - ngrepeat 错误中的重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21829499/

相关文章:

javascript - Firebase 登录并使用 google 弹出窗口加载时间过长

javascript - 使用 MongoDB 的 Visual Studio Code 中的验证错误

javascript - 如何从kendo dataSource获取原始数据?

javascript - Json 列表在数组中 ionic 返回页面 HTML

javascript - 将 d3 svg 附加到当前 ng-repeat 元素

javascript - 使用 HTTP 发送文件数据的边界?

javascript - 订阅更改,但需要查看使用服务的位置的变量?

javascript - 从 map 中选择表行。 Angular/Google map 集成

angularjs - 如何在Angularjs Controller 中设置动态变量名称

javascript - $compile 和 ng-repeat 没有返回正确的元素