사람들이 내 앱에서 소셜 버튼을 클릭 한 횟수를 추적합니다. 하루에 클릭 한 번만 크레딧을주고 싶습니다. 현재 소셜 플랫폼 별 클릭 수를 필터링하고 있지만 하루에 그룹화하는 방법을 파악하지 못하고 하루에 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 @ 감사는 당신의 대답은 그러나 일,이 같은 일을 결국. 이것이 좋은 접근 방법이 아닌지 알려주십시오. 도와 주신 모든 분들께 감사드립니다. 당신이reduce
에 클릭 별 일의 카운트 클릭의 배열을 원하는처럼
// 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의 예는 update를 참조하십시오. – Jason