Mar*_*tra 2 angularjs angularjs-ng-repeat angular-filters
我正在尝试groupBy
一个日期,这是一个JS日期对象.我想每天对数据进行分组.
我有什么想法可以在视图中做到这一点?
$scope.data = {
messages: [
{
date: new Date(1432811030 * 1000),
message: 'Some text 01'
},
{
date: new Date(1432731600 * 1000),
message: 'Some text 02'
},
{
date: new Date(1432819703 * 1000),
message: 'Some text 03'
}
]
};
Run Code Online (Sandbox Code Playgroud)
在我看来,我使用:
<div ng-repeat="(key, value) in data.messages | groupBy: 'date'">
<div>{{ key }}</div>
<div ng-repeat="message in value">
<div>{{ message.message }}</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我将此angular.filter
模块包含在mu项目中:https://github.com/a8m/angular-filter
问题是我现在按日期/时间而不是每天进行分组.知道怎么样?
演示:http://plnkr.co/edit/djPMu4UH9t9BeGwBcUMI
截图:https://www.dropbox.com/s/9z5t6nsp3x1266s/Screenshot%202015-05-28%2019.50.44.png?dl=0
HTML:
<body ng-app="myApp" ng-controller="myController">
<div ng-repeat="(key, value) in testData.messages">
<div>{{ key }}</div>
<div ng-repeat="message in value">
<div>{{ message }}</div>
</div>
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
JS:
var app = angular.module('myApp', []);
app.controller('myController', function($scope) {
$scope.data = {
messages: [
{
date: new Date(1432811030 * 1000),
message: 'Some text 01'
},
{
date: new Date(1432731600 * 1000),
message: 'Some text 02'
},
{
date: new Date(1432819703 * 1000),
message: 'Some text 03'
}
]
};
$scope.convertTo = function (arr, key, dayWise) {
var groups = {};
for (var i=0;l= arr.length, i<l;i++) {
if (dayWise) {
arr[i][key] = arr[i][key].toLocaleDateString();
}
else {
arr[i][key] = arr[i][key].toTimeString();
}
groups[arr[i][key]] = groups[arr[i][key]] || [];
groups[arr[i][key]].push(arr[i]);
}
return groups;
};
$scope.testData = {};
angular.copy($scope.data, $scope.testData);
$scope.testData.messages = $scope.convertTo($scope.testData.messages, 'date', true);
console.log($scope.testData)
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15652 次 |
最近记录: |