Angular - 错误:[ngRepeat:dupes]使用$ http获取数据时

时间:2015-10-08 05:03:06

标签: javascript angularjs http ng-repeat

您好我刚刚开始使用AngularJs,我在使用$ http获取数据时遇到问题并且$ scope.productInfos = data返回错误:[ngRepeat:dupes],下面是我的代码:

<p>

在视图中:

$scope.processForm = function(formData) {

        $http({

          method  : 'POST',

          url: '/quote-tool/productinfoforproductids/', // using php to generate json i.e [{id:1},{id:2}]

          data: $('.js-checkedCompareForm').serialize(),

          headers : { 'Content-Type': 'application/x-www-form-urlencoded' }  // set the headers so angular passing info as form data (not request payload)

         }).success(function(result) {

            $scope.productInfos = result;

         }).error(function(err) {

             return err; 

        });
    };

我不确定棱角将它视为重复的复制? 我一直在尝试使用$ index跟踪,但仍然没有工作,它在视图中显示过多的重复。

2 个答案:

答案 0 :(得分:0)

当您在ngRepeat表达式中有重复键时会发生此类错误。可能正在使用 // Html Code <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> </head> <form action="#" method="post" class="validateUser"> passwrod:<input type="password" class="form-control" name="password" id="PasswordFild1"> Conform Password: <input type="password" class="form-control" name="password_again" id="PasswordFild2"> </form> // Jquery Validation $(document).ready(function(){ $("#PasswordFild2").change(function() { var PasswordFild1= $("#PasswordFild1").val(); var PasswordFild2= $("#PasswordFild2").val(); if(PasswordFild1 == PasswordFild2 ) { // Then Validate Both Password Match }else { alert('Enter Same password'); // alert or error mess Print : password not match } // Check input( $( this ).val() ) for validity here }); }); 将解决您的问题。请看此链接:https://docs.angularjs.org/error/ngRepeat/dupes

track by $index

如果您仍然收到错误,请提供小提琴/弹药。

答案 1 :(得分:0)

我设法找到问题,它是由php生成的json文件引起的,它生成了一个错误的json格式,导致数据响应中的错误。

was: {id:1},{id:2}

 should be:  {
    "productInfos":[
      {id:1},
      {id:2}
    ]
  }