如何在angularjs中添加ng-repeat中的值

How to add the values inside ng-repeat in angularjs?

本文关键字:ng-repeat 添加 angularjs      更新时间:2023-09-26

我使用ng-repeat使用web服务获取数据。现在我试着用ng-change把它的值加起来。代码是这样的。

 <div ng-repeat="task in tasklists">
   <div ng-repeat="subtask in task.tasks">
    <span>{{subtask.subTaskName}}</span>
    <span style="float: right; padding: none; " class="t-hrs"> {{task.hours[$index]}} Hrs</span>
    <div class="cmt"><a href="#"></a></div>
    <div class="d-task"><a href="#"></a></div>
      <div class="range range-positive" >
        <input type='range' id="{{task._id}}_{{subtask._id}}" ng-model="task.hours[$index]" ng-init="totalChange()" ng-change="totalChange()" min='{{min}}' max='{{max}}' step='{{0.50}}'/>
      </div>
      </div>
     </div>

脚本如下:

$scope.totalChange = function(){
    $scope.updatedTime=0;
    for (var i=0; i < $scope.task.tasks.length; i++){
      if($scope.task.tasks[i].hours !== undefined){
        //$scope.updatedTime = $scope.updatedTime+Number($scope.tasklists[i].hours);
        $scope.updatedTime +=task.hours[$index];
      }
    }
  }

但是我不能得到$作用域。updatedTime价值。有人能帮帮我吗?

像这样做

<input type='range' id="{{task._id}}_{{subtask._id}}" ng-model="task.hours[$index]" ng-init="totalChange(task,task.hours[$index])" ng-change="totalChange(task,task.hours[$index])" min='{{min}}' max='{{max}}' step='{{0.50}}'/>
$scope.totalChange = function(task,hour){
    $scope.updatedTime=0;
    for (var i=0; i < task.tasks.length; i++){
        if(task.tasks[i].hours !== undefined){        
            $scope.updatedTime +=hour;
        }
    }
}

最后我得到了解决方案。这是HTML代码

<div ng-repeat="task in tasklists">
   <div ng-repeat="subtask in task.tasks">
    <span>{{subtask.subTaskName}}</span>
    <span style="float: right; padding: none; " class="t-hrs"> {{subtask.hourscal}} Hrs</span>
    <div class="cmt"><a href="#"></a></div>
    <div class="d-task"><a href="#"></a></div>
      <div class="range range-positive" >
        <input type='range' id="{{task._id}}_{{subtask._id}}" ng-model="subtask.hourscal" ng-init="totalChange()" ng-change="totalChange()" min='{{min}}' max='{{max}}' step='{{0.50}}'/>
      </div>
      </div>
     </div>

这是函数

$scope.totalChange = function(){
    $scope.updatedTime=0;
    $scope.hourscal = 0;
       for (var i=0; i < $scope.tasklists.length; i++){ 
        for(var j=0; j< $scope.tasklists[i].tasks.length; j++){
          if($scope.tasklists[i].tasks[j].hourscal !== undefined){
            $scope.updatedTime = $scope.updatedTime + Number($scope.tasklists[i].tasks[j].hourscal);
          }
        }
      }  
    }