JSFiddle - React, Tailwind, and code Playground
HTML
<div ng-app="myApp">
<div ng-controller="AppCtrl">
<div ng-repeat="session in sessiones">
Date: {{session.date }}  
Availability: {{session.availability}}
Index: {{$index}}
<a href="#" ng-click="addItem($index, evento, session)"> ADD+ </a>
</div>
<div ng-repeat="(key, value) in cartItems">
<h1> {{value.sessions }}</h1>
</div>
</div>
</div>
JavaScript
'use strict';
var app = angular.module('myApp',[]);
app.controller('AppCtrl', function($scope){
var dataEvents={
"event": {
"id": "184",
"title": "The Stone Roses",
"subtitle": "Tour 2015",
"image": "/assets/img/sample-image.jpg"
},
"sessions": [
{
"date": "1443564000000",
"availability": "6"
},
{
"date": "1442959200000",
"availability": "3"
},
{
"date": "1447196400000",
"availability": "10"
},
{
"date": "1444428000000",
"availability": "5"
},
{
"date": "1446332400000",
"availability": "8"
}
]
}
$scope.evento = dataEvents.event;
$scope.sessiones = dataEvents.sessions;
$scope.addItem = function(index, event, session) {
if (session.availability>0){
$scope.cartItems = $scope.cartItems || {};
$scope.cartItems[event.id] = $scope.cartItems[event.id] || {title:event.title, sessions:{}}
$scope.cartItems[event.id].sessions[session.date] = $scope.cartItems[event.id].sessions[session.date] || {num:0}
$scope.cartItems[event.id].sessions[session.date].num++;
session.availability-=1;
console.log($scope.cartItems);
}
}
});