我正在跟蹤用戶在我的應用中點擊了多少次社交按鈕。我想只給他們每天點擊一次的功勞。我目前通過社交平臺過濾點擊量,但我無法弄清楚如何按天分組,並且只給他們每天計數1。下面是我當前的代碼:角度過濾器,按日期分組
控制器:
Data.get('stats/'+$scope.uid).then(function(data){
$scope.stats = data.data;
// determine if the user has any stats
$scope.hasStats = $scope.stats.length;
$scope.topUsersObjects = $filter('filter')($scope.stats, {
action: "completed"
});
$scope.facebookObjects = $filter('filter')($scope.stats, {
platform: "facebook",
action: "completed"
});
$scope.twitterObjects = $filter('filter')($scope.stats, {
platform: "twitter",
action: "completed"
});
$scope.facebookClickedObjects = $filter('filter')($scope.stats, {
platform: "facebook",
action: "clicked"
});
$scope.twitterClickedObjects = $filter('filter')($scope.stats, {
platform: "twitter",
action: "clicked"
});
$scope.labels = ["Facebook", "Twitter", "Clicked"];
var totalClicked = $scope.facebookClickedObjects.length + $scope.twitterClickedObjects.length;
$scope.data = [$scope.facebookObjects.length, $scope.twitterClickedObjects.length, totalClicked];
});
UPDATE(樣本$ scope.stats):
Object
action:"clicked ls"
guid:"1200041"
id:"52"
platform:"facebook"
timeclicked:"2015-10-12 21:46:26"
uid:"44043077e53d"
任何幫助是極大的讚賞。
最終更新的答案:然而
謝謝@威廉-B答案的工作,我終於實現了這個樣子。請讓我知道這是不是一個好方法。感謝大家的幫助。
// facebook group by days, completed
$scope.facebookGroupByDay = _.groupBy($scope.facebookObjects, function(item) {
return item.timeclicked.substring(0,10);
});
// get the number of days with a completed post
$scope.fbCount = Object.keys($scope.facebookGroupByDay);
// twitter group by days, clicked
$scope.twitterGroupByDay = _.groupBy($scope.twitterClickedObjects, function(item) {
return item.timeclicked.substring(0,10);
});
// get the number of days with a clicked tweet
$scope.twCount = Object.keys($scope.twitterGroupByDay);
什麼是$ scope.stats的json模式?我沒有看到你的例子中的任何地方的日期 –
@DanielGimenez請參閱更新的示例$ scope.stats – Jason