Hi All I am super new to firebase and I need some help.
First of all what I'm doing is about a tick sheet. for example a tick sheet contains a list of items which contains logs of the ticks so I designed my data as follows:
Ticksheets:
ticksheets:
-JbN5ol2jGRtAOZ9ovrO(auto generated id by firebase)
created_on:
description:
name:
owner:
-JbN5ol2jGRtAOZ9ovrO
created_on:
description:
name:
owner:
Ticks:
ticks:
-JbOGA1s3Tl3jtKPQe43 //ticksheet ID
-JbOHE6wY5CLz1wazNUx //itemID
Thu Nov 27 2014 01:51:40 GMT 0800 (MYT)
timestamp:
-JbhDiX4iDneG34LzEgA // itemID
Thu Nov 27 2014 01:51:44 GMT 0800 (MYT)
timestamp:
Thu Nov 27 2014 01:51:47 GMT 0800 (MYT)
Thu Nov 27 2014 01:53:48 GMT 0800 (MYT)
Thu Nov 27 2014 01:53:51 GMT 0800 (MYT)
view:
<ion-view title="{{ticksheet.name}}" class="button-positive">
<ion-content class="has-header" ng-repeat="ticksheetItem in ticksheetItems">
<div class="row" ng-repeat="ticksheetItem in ticksheetItems" ng-if="$index%2==0" >
<div class="col col-50" ng-if="$index<ticksheetItems.length" ng-controller="TickCtrl" ng-click="incrementCount(ticksheetItem.$id,ticksheet.$id)">
<div class="tick-item" style="background-color: #B7E5B0;">
<div class="tick-item-row1 row">
<i class="icon ion-gear-a font-size-l dark col col-10"></i>
<strong class="font-size-m col dark">{{ticksheetItems[$index].name}}</strong>
</div>
<div class="row">
<p class="col col-10" ng-controller="TickCtrl">
{{count.test}} // I'd like to put the length of the child here
</p>
<p class="col dark">
{{ticksheetItems[$index].description}}
</p>
</div>
</div>
</div>
<div class="col col-50" ng-if="($index+1)<ticksheetItems.length">
<div class="tick-item" style="background-color: #514D4F">
<div class="tick-item-row1 row">
<i class="icon ion-settings font-size-l dark col col-10"></i>
<strong class="font-size-m col light">{{ticksheetItems[$index+1].name}}</strong>
</div>
<div class="row">
<p class="col col-10">
// I'd like to put the length of the child here
</p>
<p class="col item-note">
{{ticksheetItems[$index+1].description}}
</p>
</div>
</div>
</div>
</div>
</ion-content>
</ion-view>
in my view I have an ng-repeat for the ticksheetItems which I need to display total amount of ticks so I don't know how can I populate the total count of ticks under that certail ticksheet
controller:
//specific ticksheet ctrl
.controller('TicksheetCtrl', function($scope, $rootScope,$firebase, $stateParams) {
$scope.baseUrl = $rootScope.baseUrl+'ticksheets/'+ $rootScope.authData.uid + '/' + $stateParams.ticksheetId;
var ref = new Firebase($scope.baseUrl)
var ticksheet = $firebase(ref);
var ticksheetItems = $firebase (ref.child('ticksheetItems'));
$scope.ticksheet = ticksheet.$asObject();// parent ticksheet
$scope.ticksheetItems = ticksheetItems.$asArray();//ticksheet Items
})
.controller('TickCtrl', function($scope, $rootScope,$firebase, $stateParams) {
$scope.baseUrl = $rootScope.baseUrl + 'ticks/';
$scope.incrementCount = function(itemId,ticksheetId){
$rootScope.show('counting up');
var ref = new Firebase($scope.baseUrl + ticksheetId + '/' + itemId + '/' + new Date()) //didn't use SERVER TIMESTAMP yet
// adding ticksheet log to 'ticks' record
var form = {
timestamp: Firebase.ServerValue.TIMESTAMP,
}
ref.push(form,function(){
$rootScope.hide();
});
var ticks = $firebase(ref.parent());
var tickCount = $firebase(ref.parent()).$asArray();
tickCount.$loaded().then(function(sync) {
console.log(sync.length);
console.log(sync[1]);
console.log('item count' + itemId, $scope.count.itemId)
$scope.count.test = (sync.length - 1);
$rootScope.notify('total count for this item is: ' + (sync.length -1) );
});
}
//$scope.totalCount = I don't know how to populate {{count}} on my view per ticksheet item
})
Please advise. If I have posted the question broadly or unclearly please comment so that I know what to improve. Thanks a lot!