Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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/1/angularjs/22.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 repeat传播包含另一个ng repeat列表的列表_Javascript_Angularjs - Fatal编程技术网

Javascript 使用ng repeat传播包含另一个ng repeat列表的列表

Javascript 使用ng repeat传播包含另一个ng repeat列表的列表,javascript,angularjs,Javascript,Angularjs,我试图创建一个传播n个对象的角度列表,在列表项中,再次使用ng repeat从对象的属性(即数组)创建一个水平列表 我如何做到这一点 以下是我目前正在使用的对象: $scope.profileCompare={ 你:{ 问题回答:[假,真,假,假,假,假], 问题重要性:[假,真,假] }, 比萨饼:{ 问题回答:[真,假,假,假,假,假], 问题重要性:[假,假,真] }, 格林:{ 问题回答:[假,假,假,假,真,假], 问题重要性:[对,错,错] } }您的第一级不是数组,而是键值对字典

我试图创建一个传播n个对象的角度列表,在列表项中,再次使用ng repeat从对象的属性(即数组)创建一个水平列表

我如何做到这一点

以下是我目前正在使用的对象:
$scope.profileCompare={
你:{
问题回答:[假,真,假,假,假,假],
问题重要性:[假,真,假]
},
比萨饼:{
问题回答:[真,假,假,假,假,假],
问题重要性:[假,假,真]
},
格林:{
问题回答:[假,假,假,假,真,假],
问题重要性:[对,错,错]
}

}
您的第一级不是数组,而是键值对字典

您可以使用对象语法(
(key,value)
)迭代第一层,然后使用数组语法迭代第二层;如下所示:

<table>
  <tr ng-repeat="(key, value) in profileCompare">
    <td>{{key}}</td>
    <td ng-repeat="answer in value.questionAnswer track by $index">{{answer}}</td>
  </tr>
</table>

{{key}}
{{答案}
在您的情况下,
将是一个对象,具有两个属性,
问题答案
问题重要性


使用此语法的缺点是,顺序由浏览器设置,可能与数据集中定义的顺序相同,也可能不同。如果希望能够对数据进行过滤、排序等,则需要首先将对象转换为数组;建议对此任务使用。

如果要迭代第一级,则需要以下语法:

ng-repeat="(key, value) in profileCompare"
在这之后,迭代数组属性就非常简单了:

以下是完整的HTML:

<div ng-repeat="(key, value) in profileCompare">
  <h2>{{key}}</h2>
  <h3>Answers</h3>
  <ul>
  <li ng-repeat="answer in value.questionAnswer track by $index">
    {{answer}}
  </li>
  </ul>
  <h3>Question importance</h3>
  <ul>
    <li ng-repeat="importance in value.questionImportance track by $index">
      {{importance}}
    </li>
  </ul>
</div>

{{key}}
答案
  • {{答案}
问题重要性
  • {{重要性}
请注意$index的轨迹,因为您正在迭代布尔值,而布尔值肯定会重复


这里有一个提示:

你能发布你的HTML代码吗?没有,因为我不知道怎么做。除非你想从各个方面看到一些基本的和衍生的东西,否则我真的很想帮你找到一个最终的解决方案;我不是想批评你的方法或让你删除你的最新问题;我可能有点强悍,但我只是尽力鼓励你展示更多的图片,选择更多的标签,以获得更多的曝光和更好的答案。