在将数据推入数组时多次调用angularjs函数

时间:2017-12-05 04:36:56

标签: angularjs

我将几列连接成一列并在网格上显示。我想将该值推入数组中。虽然这样做我得到这个错误。

  

错误:[$ rootScope:infdig] 10 $ digest()迭代达成。中止!   观察者在最近5次迭代中被解雇:

我也注意到这个函数被多次调用。我在其他帖子中做了一些事情,但没有任何效果。 在下面的代码中我连接getLoss()函数中的列,我试图将该值插入数组。

当为每一行调用函数时,如何将值推入数组?

columnDefs: [{ field        : 'loss',
                cellTemplate : '<div id="grid-cell-template">
                                   {{grid.appScope.getLoss(row.entity)}}</div>'}]

var totalLoss = []; 

$scope.getLoss = function(rowEntity) {

            var ls1 = rowEntity.loss1;
            var ls2 = rowEntity.loss2;
            var ls3 = rowEntity.loss3;

           loss= ls1+ls2+ls3;
           console.log("loss=", loss);

           totalLoss.push(loss);

            return loss;
        };

1 个答案:

答案 0 :(得分:0)

而不是像表达式一样调用函数,在ng-init

中调用它
columnDefs: [{ field        : 'loss',
                cellTemplate : '<div id="grid-cell-template" ng-init="grid.appScope.getLoss(row.entity)">
                                   {{loss}}</div>'}]

loss变量更改为范围,并在函数内使totalLoss为空。

var totalLoss = [];
$scope.getLoss = function(rowEntity) {

           totalLoss = [];
           var ls1 = rowEntity.loss1;
           var ls2 = rowEntity.loss2;
           var ls3 = rowEntity.loss3;

           $scope.loss= ls1+ls2+ls3;
           console.log("loss=", loss);

           totalLoss.push(loss);

};