I'm fairly new to angularJS but I've read that services should be singleton. However, it wont' work. Here is my service:
 .factory('TrainingPlan', function($http, SERVER){
   var o = {
     exercises: [],
     planID : 0
   };
   o.init = function(){
     if(o.exercises.length == 0)
      return o.getAllExercises();
   };
   o.getAllExercises = function(){
     $http({
       method: 'GET',
       url: SERVER.url + 'listener.php?request=getAllExercises&planID=' + o.planID
     }).then(function(data){
       o.exercises = angular.copy(o.exercises.concat(data.data));
       console.log("Exercises in Trainingplan Services");
       console.log(o.exercises);
       return o.exercises;
     })
     ;
   };
   o.getExercise = function(exerciseID){
     for(var i = 0; i < o.exercises.length; i++){
       if(o.exercises[i].exerciseID == exerciseID)
       {
         return o.exercises[i];
       }
     }
   };
  return o;
 })
And I have two Controllers:
  .controller('TrainingDetailCtrl', function($scope, $stateParams, TrainingPlan, $timeout) {
   TrainingPlan.init();
    $timeout(function(){
      $scope.exercises = TrainingPlan.exercises;
      $scope.numberOfUnfishedExercises = $scope.exercises.length;
      button.innerHTML = "asdf";
    }, 250);
  })
(I haven't copied the whole controller, but it works so far...)
  .controller('TrainingHistoryEditCtrl', function($scope, $stateParams, TrainingPlan, $timeout) {
    var exerciseID = $stateParams.exerciseID;
    $scope.currentExercise = TrainingPlan.getExercise(exerciseID);
    console.log($scope.currentExercise);
  })
So actually I go from TrainingDetailCtrl where I have all the exercises of 'TrainingPlan'. However, when I change the sites, TrainingPlan has no exercises anymore when I wont to use them in TrainingHistoryEditCtrl.
 
     
    