我试图用ng repeat in Angular来重复一个多维数组的子数组。我的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'">
我使用了三个嵌套的< code>ng-repeat指令来实现这种滚动:-)第三个< code>ng-repeat使用< code>ng-repeat="(key,value) in result"功能来显示所有结果对象的键和值,我在这个答案的帮助下,了解了如何在ng-repeat中迭代键和值。< code>orderBy:部分还没有工作(如果有人知道如何实现,那么任何帮助都是受欢迎的)。
<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>
扑通一声
您应该访问结果字段:
... data-ng-repeat="item in items">
<tr data-ng-repeat="i in item.results">
因为嵌套数组位于主对象的results属性中。
看起来结果属性实际上并不是一个“数组”如果这只是您示例中的一个错误,请忽略。如果不是...继续阅读。
它看起来像一个带有单个项目的数组,而该项目是一组属性,这些属性反过来又是对象。换句话说,您可以使用看起来像item.results[0]["1000"]. pr
的代码来引用名为“1000”的结果的属性“pr”,而不是使用看起来像您的ng-重复期望的代码(item.results[0]. pr
)。
当您获得项目时,是否可以转换它们,以便结果是一个真正的数组?
或者-您可以在控制器内部使用一个函数来返回您要查找的数组吗?
查看代码:
<... data-ng-repeat="result in resultsFromItem(item)" >
控制器代码:
$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;
}
如果您愿意,您甚至可能决定将“转换的”结果对象挂起到每个项目对象上(因此您只需要执行一次转换)。
我想创建一个数组,使其包含一些标识名,并且对于这些名称中的每一个,都有另一个关联的数组。我的做法是,, 执行此操作后,我得到如下结果:, 下次调用此函数时,我需要检查1-1是否存在,如果存在,我需要获取与1-1相关的列表。我该怎么做。。?如果1-1不在myArray中,我将调用其他函数。
问题内容: 有没有一种方法可以定义次数,而不必总是遍历数组? 例如,在下面,我希望列表项显示5次,并假设等于5,并且增加数字,因此每个列表项都按1、2、3、4、5递增 所需结果: 问题答案: 较新版本的AngularJS(> = 1.3.0)允许您仅使用变量(无需功能)来执行此操作: 在首次提出问题时这是不可能的。感谢@Nikhil Nambiar从下面的回答中获得此更新 原创(5/29/2013
我有一个数组。如何按类型、名称和大小以及递增量找到双重许可。增加数量后删除相同的。
题目链接 牛客网 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 // html Input: {2, 3, 1, 0, 2, 5} Output: 2 解题思路 要求时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标
我需要一个数据列表,该列表通过其定义的属性(监控)进行过滤,我不能只执行以下操作: 因为我需要计算未受监控的。 对于这个示例,我简化了从getProjects()返回的数据,通常是: 我将首先遍历this.projects.owner,然后遍历模板中的其余部分。此处未监控的总数将等于1。 所以我想我不能用这种方法 例子: 样板 控制器: 模板正确显示了2个结果: 项目1项目2 但console.l
我被问到一个面试问题,要求我返回数组中重复次数最多的数字,例如,{1,1,2,3,4}返回1。 我首先在hashtable中提出了一种方法,它要求空间复杂度O(n)。然后我说先对数组排序,然后遍历它,然后我们就可以找到数字了。 有什么优化吗? 谢了。