Immediately-Invoked Function Expression
by Edward Tanguay
HTML
<div ng-app="app">
<div ng-controller="mainController">
<ul>
<li ng-repeat="message in messages">{{message}}</li>
</ul>
</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());
});