2015-02-05 71 views
0
 <tr data-ng-repeat="timesheet in timesheets"> 
        <td>{{timesheet.startDate | date:'dd/MM'}}</td> 
        <td>{{timesheet.startTime | date:'HH:mm'}}</td> 
        <td>{{timesheet.endTime | date:'HH:mm'}}</td> 
        <td>{{timesheet.breakTime | date:'HH:mm'}}</td> 
        <td>{{timesheet.totalTime | date:'HH:mm'}}</td> 
        <td >{{timesheet.note}}</td> 

       </tr> 

和,我要讓所有timesheet.totalTime的和一個新的變量,timesheet.totalTime是一個日期,這樣我就可以使用調用getHours和getMinutes如何獲得的日期時間+分

所以我的問題是我怎麼能做出新的int /數VAR,即得到TOTALTIME 例如總和..

<td>{{timesheet.totalTime | date:'HH:mm'}}</td> //= 09:30 
    <td>{{timesheet.totalTime | date:'HH:mm'}}</td> //= 10.45 
    <td>{{timesheet.totalTime | date:'HH:mm'}}</td> //= 01:15 
    <td>{{timesheet.totalTime | date:'HH:mm'}}</td> //= 10.00 
    <td>{{timesheet.totalTime | date:'HH:mm'}}</td> //= 10.00 

<td>{{timesheet.totalTimeSum}}</td> //= 41.30 ?? 

如何使這在控制器端

+0

你可以發佈設置時間表屬性的JavaScript嗎?當你想要它達到41.30,你的意思是41.5小時,或41小時30分鐘? – 2015-02-05 15:19:27

+0

其查詢$ scope.timesheets = Timesheets.query(); ,並且我想要小時和分鐘的總時間表:) – Stweet 2015-02-05 15:24:49

+0

日期部分的值是多少?你會在timesheet.totalTime字段中的任何一箇中有24個或更多小時嗎? – 2015-02-05 15:35:47

回答

0

您可以創建一個控制器方法使用reduce總結timesheets

$scope.timesheets = [ 
    { 
     totalTime: 1 
    }, 
    { 
     totalTime: 3 
    }, 
    { 
     totalTime: 2 
    }, 
    { 
     totalTime: 10 
    }  
]; 

$scope.totalTimeSum = function() { 
    return $scope.timesheets.reduce(function (memo, timesheet) { 
     // assuming you've DI'd $filter 
     var time = $filter('date')(timesheet.totalTime, 'HH:mm'); 
     return memo + (+time); 
    }, 0); 
}; // 16 

根據哪些瀏覽器需要支持,您可能需要墊片Array#reduce或使用lodash /下劃線。

Fiddle

+0

我認爲totalTime屬性是日期/時間。我對AngularJS不是很熟悉,但我認爲'{{timesheet.totalTimeSum}}'需要改爲'{{totalTimeSum}}',例如。 – 2015-02-05 15:28:35

+0

timesheets是一個來自mongodb的查詢,totalTime是一個Date對象,而不是一個Number,如你的示例所示:s – Stweet 2015-02-05 15:28:36

+0

我已經添加了一些代碼,用於根據需要_should_解析Date。儘管如此,YMMV尚未經過測試。 – pdoherty926 2015-02-05 15:40:29