Skip to content
AngularJS

Services & Factories

Factory and service singletons for shared state and logic.

#angularjs#service#factory

Code

angularjs
angular.module('servicesApp', [])
.factory('UserService', function() {
  const users = [];
  return {
    add: function(user) { users.push(user); },
    list: function() { return users; },
    count: function() { return users.length; }
  };
})
.service('AuthService', function($http) {
  this.login = function(creds) {
    return $http.post('/api/login', creds);
  };
  this.logout = function() {
    return $http.post('/api/logout');
  };
})
.controller('AppController', function(UserService, AuthService) {
  const vm = this;
  vm.users = UserService.list();
  vm.addUser = function() {
    UserService.add(vm.newUser);
    vm.users = UserService.list();
  };
});