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
Angularjs groupby和服务中的总和角度2/4_Angularjs_Service_Sum - Fatal编程技术网

Angularjs groupby和服务中的总和角度2/4

Angularjs groupby和服务中的总和角度2/4,angularjs,service,sum,Angularjs,Service,Sum,我在完成一些事情上遇到了一些困难。我希望你们能帮我解决这个问题。API的结果类似于(并非所有字段都显示): 这个结果我需要在我的服务中更改为以下所有内容。所以我需要做一个分组和一些加法。(在fase_id上的grouby和在virtualec和ec上的sum。这是我想要它的一个例子 [{ "fase_id": "P", "fase_naam": "Propedeuse", "sumEc": 22.5, "sumvirtualec": 17, "Eindr

我在完成一些事情上遇到了一些困难。我希望你们能帮我解决这个问题。API的结果类似于(并非所有字段都显示):

这个结果我需要在我的服务中更改为以下所有内容。所以我需要做一个分组和一些加法。(在fase_id上的grouby和在virtualec和ec上的sum。这是我想要它的一个例子

 [{
    "fase_id": "P",
    "fase_naam": "Propedeuse",
    "sumEc": 22.5,
    "sumvirtualec": 17,
    "Eindresultaten": [{
        "code": "CU03241",
        "naam": "Test1",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 5,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {
        "code": "CU03242",
        "naam": "Test2",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 2,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {
        "code": "CU03243",
        "naam": "Test3",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 10,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }]
}, {
    "fase_id": "H",
    "fase_naam": "Hoofdfase",
    "sumEc": 22.5,
    "sumvirtualec": 4,
    "Eindresultaten": [{
        "code": "CU03244",
        "naam": "Test4",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 0,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {

        "code": "CU03245",
        "naam": "Test7",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 4,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }]
}]

我想我可以用RxJS或其他什么东西来完成这项工作,但我不知道具体是如何完成的。

我建议使用自定义过滤器。这可能会对您有所帮助

angular.module('app',[])
.controller('MainController',函数($scope,$filter){
$scope.data=[
{
“代码”:“CU03241”,
“naam”:“Test1”,
“结果编号”:59,
“ResultAt”:“5.9”,
“欧共体”:7.5,
“virtualec”:5,
“sbu”:210,
“kleur”:“黑色”,
“isvastgesteld”:没错,
“最广大的地区”:“2011-03-14T00:00:00”,
“fase_id”:“P”,
“法瑟纳姆”:“普罗佩德乌斯”
}, {
“代码”:“CU03242”,
“naam”:“Test2”,
“结果编号”:59,
“ResultAt”:“5.9”,
“欧共体”:7.5,
“virtualec”:2,
“sbu”:210,
“kleur”:“黑色”,
“isvastgesteld”:没错,
“最广大的地区”:“2011-03-14T00:00:00”,
“fase_id”:“P”,
“法瑟纳姆”:“普罗佩德乌斯”
}, {
“代码”:“CU03243”,
“naam”:“Test3”,
“结果编号”:59,
“ResultAt”:“5.9”,
“欧共体”:7.5,
“virtualec”:10,
“sbu”:210,
“kleur”:“黑色”,
“isvastgesteld”:没错,
“最广大的地区”:“2011-03-14T00:00:00”,
“fase_id”:“P”,
“法瑟纳姆”:“普罗佩德乌斯”
}, {
“代码”:“CU03244”,
“naam”:“Test4”,
“结果编号”:59,
“ResultAt”:“5.9”,
“欧共体”:7.5,
“virtualec”:0,
“sbu”:210,
“kleur”:“黑色”,
“isvastgesteld”:没错,
“最广大的地区”:“2011-03-14T00:00:00”,
“fase_id”:“P”,
“法斯努纳姆”:“霍夫法斯”
}, {
“代码”:“CU03245”,
“naam”:“Test7”,
“结果编号”:59,
“ResultAt”:“5.9”,
“欧共体”:7.5,
“virtualec”:4,
“sbu”:210,
“kleur”:“黑色”,
“isvastgesteld”:没错,
“最广大的地区”:“2011-03-14T00:00:00”,
“fase_id”:“H”,
“法斯努纳姆”:“霍夫法斯”
}
];
$scope.mani=$filter('groupBy')($scope.data,'fase_id');
$scope.H={“fase_id”:“H”,
“法瑟纳姆”:“普罗佩德乌斯”,
“sumEc”:22.5,
“sumvirtualec”:17,“Eindresultaten”:[]};
$scope.P={“fase_id”:“P”,
“法瑟纳姆”:“普罗佩德乌斯”,
“sumEc”:22.5,
“sumvirtualec”:17,“Eindresultaten”:[]};
angular.forEach($scope.mani,函数(值,键){
如果(键=='H'){
$scope.sum1=$filter('sum')(值为'virtualec');
$scope.sum2=$filter('sum')(值'ec');
$scope.H.sumEc=$scope.sum1;
$scope.H.sumvirtualec=$scope.sum2;
$scope.H.Eindresultaten=$scope.mani.H;
}否则{
$scope.sum11=$filter('sum')(值为'virtualec');
$scope.sum12=$filter('sum')(值'ec');
$scope.P.sumEc=$scope.sum11;
$scope.P.sumvirtualec=$scope.sum12;
$scope.P.Eindresultaten=$scope.mani.P;
}
});
})
.filter('groupBy',函数(){
var结果={};
返回函数(数据、键){
如果(!(数据和键))返回;
var结果;
如果(!this.$id){
结果={};
}否则{
var scopeId=此。$id;
如果(!results[scopeId]){
结果[scopeId]={};
此.$on(“$destroy”,函数(){
删除结果[scopeId];
});
}
结果=结果[范围ID];
}
for(结果中的var groupKey)
结果[groupKey]。拼接(0,结果[groupKey]。长度);

对于(var i=0;请参阅我的更新代码)。
 [{
    "fase_id": "P",
    "fase_naam": "Propedeuse",
    "sumEc": 22.5,
    "sumvirtualec": 17,
    "Eindresultaten": [{
        "code": "CU03241",
        "naam": "Test1",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 5,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {
        "code": "CU03242",
        "naam": "Test2",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 2,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {
        "code": "CU03243",
        "naam": "Test3",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 10,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }]
}, {
    "fase_id": "H",
    "fase_naam": "Hoofdfase",
    "sumEc": 22.5,
    "sumvirtualec": 4,
    "Eindresultaten": [{
        "code": "CU03244",
        "naam": "Test4",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 0,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }, {

        "code": "CU03245",
        "naam": "Test7",
        "resultaatnumeriek": 59,
        "resultaat": "5.9",
        "ec": 7.5,
        "virtualec": 4,
        "sbu": 210,
        "kleur": "black",
        "isvastgesteld": true,
        "vastgesteldop": "2011-03-14T00:00:00"
    }]
}]