Immediately-Invoked Function Expression

by Edward Tanguay

HTML

<div ng-app="app">
    <div ng-controller="mainController">
        <div id='calendar'></div>
    </div>
</div>

CSS

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

JavaScript

// MODULE PATTERN
var countManager = (function() {
    var count = 0;
    return {
    	get : function()  {
            return count;
        },
        set : function(value) {
        	count = value;
            return count;
        },
        increment : function() {
         	count += 1;
            return count;
        }
    };
}());


angular.module('app', [])
.controller('mainController', function($scope) {
    
    $scope.messages = [];
    $scope.messages.push(countManager.get());
    $scope.messages.push(countManager.set(22));
    $scope.messages.push(countManager.increment());
    $scope.messages.push(countManager.get());
    
});