如何在AngularJS中汇总多个字段并在跨度中显示结果?

时间:2017-05-14 14:29:23

标签: angularjs

下面的脚本使用ng-repeat显示计算表格。

计算重复元素总价的最简单方法是什么?

页面html:

<tr ng-repeat="ligne in data">
          <!-- <td ng-bind="$index+1"></td> -->
           <td>
             <input class="form-control input-sm" type="text" ng-show="show==0" ng-model="designation">
             <span ng-show="show==1">{{designation}}</span>
           </td>
           <td>
             <input class="form-control input-sm" type="number" ng-show="show==0" ng-change="getTotal(prixHt,quantite)" ng-model="prixHt">
             <span ng-show="show==1">{{prixHt}}</span>
           </td>
           <td>
           <input class="form-control input-sm"  type="number" ng-show="show==0" ng-change="getTotal(prixHt,quantite)" ng-model="quantite">
             <span ng-show="show==1">{{quantite}}</span>
           </td>
           <td>
             <select class="form-control input-sm" type="text" ng-show="show==0" ng-change="getTotal(prixHt,quantite)"  ng-model="tva">
               <option value="20" selected>20%</option>
               <option value="0">0</option>
             </select>
             <span ng-show="show==1">{{tva}}</span>
           </td>
           <td>
             <input class="form-control input-sm" type="text" ng-show="show==0" value="{{(prixHt * 1) * (quantite * 1)}}" id="data.totalht" disabled="true" />
             <span ng-show="show==1">{{(prixHt * 1) * (quantite * 1)}}</span>
           </td>
           <td>
            <input class="form-control input-sm" type="text" ng-show="show==0" value="{{((prixHt * 1) * (quantite * 1)) * ((100+tva*1) / 100)}}" disabled="true">
             <span ng-show="show==1">{{((prixHt * 1) * (quantite * 1)) * ((100+tva*1) / 100)}}</span>
           </td>
           <td ng-show="show==0">
           </td>
          </tr>
///////////////////////////////////////////////////////////////////////

<span class="col-md-4" ng-bind="total"></span>

///////////////////////////////////////////////////////////////////////

我的控制器代码:

$scope.getTotal = function(prixHt,quantite){

    var total = 0;
    for(var i = 0; i < $scope.data.length; i++){
      //  var product = $scope.data[i];
        total += (prixHt * quantite)*1;
        $scope.total =total;
    }
    return total;

}
///////////////////////////////////////////////////////////////////////

寻求帮助

1 个答案:

答案 0 :(得分:0)

在ng-repeat之前设置范围变量,如下所示:

{{total = 0;""}}

然后将所有价格汇总到ng-repeat:

{{total += prixHt * quantite;""}}

希望有所帮助