service
HTML
<script src="http://code.angularjs.org/1.0.0/angular-1.0.0.js"></script>
<div ng-app="MyModule">
<div ng-controller="mrController">
<p>Ajouter des messages puis cliquer sur "charger les messages"</p>
<input ng-model="message">
<button ng-click="add(message)">ajouter</button>
<button ng-click="load()">charger les messages</button>
<ul>
<li ng-repeat="msg in messages">
<span>{{msg}}</span>
<button ng-click="show(msg)">afficher</button>
</li>
</ul>
</div>
</div>
JavaScript
angular.module("myModule.services",[]).
factory('messageService',['$window',function(win) {
// déclaration du service avec une dépendance à $window
function MessageService(win) {
var msgs = ["exemple1","exemple2"];
this.addMessage = function(msg) {
msgs.push(msg);
};
this.getMessages = function() {
return msgs;
};
this.showMessage = function(msg) {
win.alert(msg);
};
};
// instanciation du service
return new MessageService(win);
}]);
angular.module("myModule.controllers",[]).
controller('mrController',['$scope','messageService',function($scope,msgService) {
// creation du controleur avec 2 dépendances $scope et messageService
$scope.message = "";
$scope.messages = [];
$scope.add = function(msg) {
msgService.addMessage(msg);
$scope.message = "";
};
$scope.load = function() {
$scope.messages = msgService.getMessages();
};
$scope.show = function(msg) {
msgService.showMessage(msg);
};
}]);
angular.module("myModule.controllers",[]).
controller('mrsController',['$scope','messageService',function($scope,msgService) {
// creation du controleur avec 2 dépendances $scope et messageService
$scope.message = "";
$scope.messages = [];
$scope.add = function(msg) {
msgService.addMessage(msg);
$scope.message = "";
};
$scope.load = function() {
$scope.messages = msgService.getMessages();
};
$scope.show = function(msg) {
msgService.showMessage(msg);
};
}]);
// chargement du module principale avec ses modules dépendants
angular.module("MyModule",["myModule.services","myModule.controllers"]);