在AngularJS中对数组集合使用ng repeat
Using ng-repeat with a collection of arrays in AngularJS
我有一个看起来像这样的对象:
Object {391:Array[1], 396: Array[2]}
391:
Array[1]
0:
arrival: "17.43.49"
car: "391"
date: "11/11/2014"
duration: "00:00:06"
time: "17.43.43"
396:
Array[2]
0:
arrival: "17.20.48"
car: "396"
date: "11/11/2014"
duration: "00:00:11"
time: "17.20.37"
1:
arrival: "17.21.27"
car: "396"
date: "11/11/2014"
duration: "00:00:17"
time: "17.21.10"
它由以下功能构成:
var carsDict = {};
angular.forEach($scope.recordlist, function(record) {
carsDict[record.car] = carsDict[record.car] || [];
carsDict[record.car].push(record);
});
$scope.carstats = carsDict;
使用AngularJS有没有任何方法可以添加数组中每个对象的子字符串属性?
例如,在上面的例子中,每个物体都是来自特定汽车的一次旅行(391有一次旅行,396有两次旅行)。现在,我使用如下的ng重复列出汽车代码和行程次数:
<div class="row" ng-repeat="carcode in carstats">
<div class="col-md-4">{{carcode[0].car}}</div>
<div class="col-md-4">{{carcode.length}}</div>
</div>
我想做的是计算出每辆车的总持续时间,所以我需要能够将每个数组中每个对象的所有持续时间属性相加。
在上面的例子中,每个数组最终都必须具有属性totalduration
,该属性是数组的所有对象中所有持续时间属性的总和。例如,第二个数组应具有396.totalduration=(duration:"00:00:11")+(duration:"00:00:17")
有什么建议吗?
我建议在控制器中进行总和计算:
var myApp = angular.module('myApp',[]);
function MyCtrl($scope) {
var carsDict = {
391: [
{
arrival: "17.43.49",
car: "391",
date: "11/11/2014",
duration: "00:00:06",
time: "17.43.43"
}
],
396: {
0: {
arrival: "17.20.48",
car: "396",
date: "11/11/2014",
duration: "00:00:11",
time: "17.20.37",
},
1: {
arrival: "17.21.27",
car: "396",
date: "11/11/2014",
duration: "00:00:17",
time: "17.21.10"
}
}
};
for (record in carsDict) {
var totalduration = '';
for (item in carsDict[record]) {
// get totalduration figured out..
totalduration += carsDict[record][item].duration; // need to account for sum using time format here
}
for (item in carsDict[record]) {
// now add totalduration to each record
carsDict[record][item]['totalduration'] = totalduration;
// to add a new value to the individual item
carsDict[record][item]['newvalue'] = 'anything you want';
// to remove a value (I prefer changing to undefined)
carsDict[record][item].arrival = undefined;
}
};
$scope.test = carsDict;
}
相关文章:
- ng init中的表达式无法使用ng repeat
- Angular ng repeat order将多个字段作为一个字段
- 访问ng repeat中的第一个项目
- Angular js+ng repeat+字母数字索引不起作用
- 如何正确应用Angularjs ng repeat
- AngularJS Navigation (li ng-repeat, create header li), DOM
- 如何使用ng repeat中的选定输入更新我的对象
- 无法使用ng repeat检索动态创建的JSON对象的属性
- 使用 ng-repeat访问 ng 表单元素/值
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- 如何在ng repeat angular js中使用$index
- 在Angularjs中,我如何使用ng repeat、ng model和ng click来动态更改内容
- ng repeat在ng repeat-过滤器不工作
- 在ng repeat中使用带有orderBy的方法
- Angular JS ng-repeat
- 在ng repeat中使ng disabled为true
- AngularJS:如何在ng repeat中使用$index
- 复选框无法正常使用ng repeat,AngularJs
- 如何避免在HTML中使用ng repeat对url名称进行硬编码
- 替换ng repeat中的一些符号