Skip to content

Instantly share code, notes, and snippets.

@a-laughlin
Created May 27, 2014 01:33
Show Gist options
  • Save a-laughlin/6a009b290909b0d33de9 to your computer and use it in GitHub Desktop.
Save a-laughlin/6a009b290909b0d33de9 to your computer and use it in GitHub Desktop.
AngularJS - simple example of how services, factories, and values work
// how services, factories, and values work
var foo = {
providers:{},
instances:{},
provider:function(name,fn){
var pName = name + 'Provider';
foo.providers[pName] = foo.providers[pName] || new fn();
foo.instances[name] = foo.instances[name] || foo.providers[pName].$get();
return foo.providers[pName];
},
service:function(name,fn){
if(foo.instances[name]){
return foo.instances[name];
}
foo.provider(name,fn); // add the provider to providers
return foo.instances[name] = new fn();
},
factory:function(name,fn){
if(foo.instances[name]){
return foo.instances[name];
}
foo.provider(name,fn); // add the provider to providers
return foo.instances[name] = fn();
},
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment