将ng-repeat项传递给控制器​​中的范围变量

时间:2017-05-18 14:37:20

标签: javascript angularjs angularjs-ng-repeat

我正在尝试使用我在视图中显示的项目并将其传递给我的控制器中的功能,但我不知道如何在此处保存该特定项目是我的代码:

我想传递p.id的视图

<tr ng-repeat=" p in projetsListe">
  <td>{{p.NomProjet}}</td>
  <td>{{calcul()}}</td>
</tr>

我的控制器功能:

 $scope.calcul = function() {
     var coutprevu = 0;

     for (var i=0;i<$scope.task.length;i++) {
         if($scope.task[i].projet_id==p.id) { //here i need p.id from the view                            
             coutprevu+=$scope.task[i].CoutParJour*$scope.task[i].TempsPrevu;
         }
    }
    return coutprevu;    
};

1 个答案:

答案 0 :(得分:1)

在您的视图中,只需传递参数:

<tr ng-repeat="p in projetsListe">
    <td>{{calcul(p.id)}}</td>
</tr>

然后在控制器的功能中恢复它:

$scope.calcul = function(id) {
    console.log(id); /* Here it is! */

    var coutprevu = 0;
    for (var i = 0; i < $scope.task.length; i++) {
        if($scope.task[i].projet_id == id) {
            coutprevu += $scope.task[i].CoutParJour * $scope.task[i].TempsPrevu;
        }
    }
    return coutprevu;
}