Cache Service Proto

by Aides

HTML

<div ng-app="app">
  <div ng-controller="testCtrl as test">
    
    <p ng-repeat="elem in test.data">
      <span ng-bind="elem"></span>
    </p>
    
    <button ng-click="test.load()" value="Load">
      Load
    </button>
    <button ng-click="test.clear()" value="Clear">
      Clear
    </button>
  </div>
</div>

JavaScript

angular.module('app', [])
  .controller('testCtrl', ['$scope', 'dataService', function($scope, dataService) {
  	var self = this;
    
    self.data = ["test"];
             
    self.load = function()
    {
    	log("called");
    	/*dataService.getAll().then(function(data)
      {
      	log('called back');
    		log(self.data);
        log(data);
        console.log(data);
        
      	//self.data = data;
        
        log(self.data);
      });*/
    };
    
    self.clear = function()
    {
    	console.log('test');
      
    	dataService.clear();
    };
  }])
  .service('dataService', ['dataServer', function(dataServer)
  {
  	var stored;
  
  	function getAll()
    {
    	return dataServer.getAll().then(function(data)
      {
      	stored = data;
        return data;
      });
    }
    
    function clear()
    {
    	delete stored;
    }
  
  	return {
    	getAll: getAll,
      clear: clear
    };
  }])
  .service('dataServer', ['$q', function($q)
  {
  	function getAll()
    {
    	return $q.resolve(['item1', 'item2', 'item3', 'item4']);
    }
    
    return {
    	getAll: getAll
    }
  }])
  
  function log(text)
  {
  	document.body.innerHTML += text + '<br>';
  }