AngularJS Service Dependencies

by Edward Tanguay

HTML

<div ng-app="app">
    <div ng-controller="CalculatorController">
         <ul>
             <li ng-repeat="person in persons">
                 {{person.display()}}
             </li>
        </ul>
    </div>
</div>

CSS

body {
    font-family:sans-serif;
    background-color: #f5f5f5;
}
div {
    margin:20px 5px;
}

JavaScript

function Person(firstName, lastName) {
    return {
        display : function() {
			return lastName + ', ' + firstName;
        },
        display2 : function() {
			return lastName + ', ' + firstName;
        }
    }
}

function Customer(firstName, lastName, company) {
    var person = Person(firstName, lastName);
    person.display = function(display) {
    	return function() {
            return display.call(person) + ' ('+ company+')';
        };
    }(person.display2);
    return person;
}

angular.module('app', [])
.controller('CalculatorController', function($scope) {
    
    $scope.persons = [];
    $scope.persons.push(Person('Jim', 'Thompson'));
    $scope.persons.push(Person('Jack', 'Harrison'));
    $scope.persons.push(Customer('Mandy', 'Baker', 'Acme Inc.'));
    
    
});