Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数组中的ng重复数组_Javascript_Arrays_Angularjs - Fatal编程技术网

Javascript 数组中的ng重复数组

Javascript 数组中的ng重复数组,javascript,arrays,angularjs,Javascript,Arrays,Angularjs,我试图用ng repeat在角度上重复多维数组的子数组。 我的json对象是: $scope.items = [{ "id":1, "BasisA":"1", "Basis":true, "personSex":"m", "isCollapsed":false, "name":"Mark Polos", "age":"1955", "results":[{"1000":{"

我试图用ng repeat在角度上重复多维数组的子数组。 我的json对象是:

 $scope.items =   [{    "id":1,
        "BasisA":"1",
        "Basis":true,
        "personSex":"m",
        "isCollapsed":false,
        "name":"Mark Polos",
        "age":"1955",
        "results":[{"1000":{"company_name":"***","model":"***","modelname":"***","pr":222,"rating":4.5,"priority":9,"matching":1},
                    "1001":{"company_name":"***","model":"***","modelname":"***","pr":228.7,"rating":5.7,"priority":7,"matching":2},
                    "1002":{"company_name":"***","model":"***","modelname":"***","pr":241.7,"rating":1.9,"priority":4,"matching":3}
                }]
    }]
我想说这样的话:

... data-ng-repeat="item in items">
然后在这个孩子的表格中:

<tr data-ng-repeat="i in item | orderBy:'insItem.pr'">

您应该访问“结果”字段:

... data-ng-repeat="item in items">

<tr data-ng-repeat="i in item.results">

因为嵌套数组位于主对象的results属性中。

看起来results属性实际上不是数组。如果这只是你的例子中的一个输入错误,那么忽略它。如果不是。。。继续读下去

它看起来像一个包含单个项的数组,该项是一组属性,而这些属性又是对象。换句话说,您将使用类似item.results[0][1000]的代码引用名为1000的结果的属性pr。pr不会使用与ng repeat期望的item.results[0]类似的代码

当您获取项目时,是否可以对其进行转换,以使结果成为真正的数组

或者-您可以在控制器中使用函数返回您要查找的数组吗

查看代码:

您甚至可以决定将转换后的结果对象挂起,使其脱离每个项对象,这样,如果您愿意,只需执行一次转换。

我使用了三个嵌套的ng repeat指令来实现此滚动:-第三个ng repeat使用ng repeat=key,结果中的值功能来显示所有结果对象键和值,在这个答案的帮助下,我开始工作。orderBy:part还不起作用,如果有人知道如何实现它,那么欢迎任何帮助

    <ul>
      <li ng-repeat="item in items">
         id: {{item.id}}, name: {{item.name}}, age: {{item.age}}, results: 
         <table>
           <tr ng-repeat="result in item.results">
             <td>
               <table style="border: 1px solid black;">
                  <tr ng-repeat="(key, value) in result | orderBy: value.pr">
                    <td> {{key}} </td> <td> {{ value }} </td>
                  </tr>
              </table>
            </td>
          </table>
      </li>
    </ul>

也许应该是@ema将其作为答案发布,你回答了他的问题。这是一个打字错误,对不起。。。但是,如果我现在在ng repeat{{i.model}中执行此操作,它将保持为空。。。当我这样做时,{{i}}它会给我所有的行,但是?你应该这样做-然后在测试代码时尝试{{val.model},然后请删除json中多余的空白。对我来说,json一开始是无效的。在我删除了一些空白后,一切正常。谢谢你能告诉我如何将整个对象转换成数组吗?等等。。。我们谈论的是什么?项目或项目或结果?它关系到整个结果。。。如果我能在使用前将代码转换成一个合适的数组,这会使事情变得更容易,不是吗?然后我不必总是调用该函数来转换!现在明白了。。。将很快进行编辑以提供该选项。
$scope.resultsFromItem = function (item) {

   if(item==undefined || item.results==undefined || item.results.length==0) {
      return [];
   }

   var myResults = [];
   for (var key in item.results[0]) {
      if(item.results[0].hasOwnProperty(key)) {
         myResults.push(item.results[0][key]);
      }
   }

   return myResults;

}
    <ul>
      <li ng-repeat="item in items">
         id: {{item.id}}, name: {{item.name}}, age: {{item.age}}, results: 
         <table>
           <tr ng-repeat="result in item.results">
             <td>
               <table style="border: 1px solid black;">
                  <tr ng-repeat="(key, value) in result | orderBy: value.pr">
                    <td> {{key}} </td> <td> {{ value }} </td>
                  </tr>
              </table>
            </td>
          </table>
      </li>
    </ul>