如何在ng-repeat中获取其他http.get响应

时间:2016-02-22 04:06:52

标签: angularjs angularjs-ng-repeat angularjs-ng-init

我有这个HTML http://pastebin.com/DegTb0iH

在其中的rullings中有一个ng-repeat rulling需要对每个员工进行投票计数,得到以下值:http://pastebin.com/EB4KigwS

问题出现在17,18和19行的HTML上,totalVotes总是在JS中返回0(或者只有最后的结果),如果你成功登录了console.log,那么每种类型的投票都会得到正确的结果

有人可以帮我一个忙吗?

1 个答案:

答案 0 :(得分:0)

你使用voto_type的不同值(足够公平)调用该函数三次但是在成功回调中所有这三个都将结果存储在$scope.totalVotes中,这意味着他们将始终显示相同和最后的结果。

您需要将每个结果存储到单独的$ scope变量中。

E.g。 JS:

if (angular.isUndefined($scope.totalVotes)) {
    $scope.totalVotes = {};
}
if (result.total > 0) {
    $scope.totalVotes[voto_type] = result.total;
} else {
    $scope.totalVotes[voto_type] = 0;
}

和HTML:

<p ng-init="getTotalVotes(rulling.id, 's')">Positivos: {{totalVotes['s']}}</p>
<p ng-init="getTotalVotes(rulling.id, 'n')">Negativos: {{totalVotes['n']}}</p>
<p ng-init="getTotalVotes(rulling.id, 'a')">Abstenções: {{totalVotes['a']}}</p>