And a quick post on how to create a service.
Angular service should contain code shared across controllers; code that doesn’t need to touch $scope directly – this is a controller’s job.
To begin, declare a module, containing services:
angular.module('hubServices', [])
.factory('adminHub', function () {
function hubServc(){
this.getUsers = function(){
return [
{"name":"Bob"},
{"name":"Bill"}
];
}
};
return new hubServc();
});
This will declare a module named ‘hubServices’, with service named ‘adminHub’. Factory method can return anything (an object or a function (yeah, i know function is an object)), in this case I return an object with a single function.
In html, add this markup:
<ul ng-controller="OneController">
<li ng-repeat="user in users">{{user.name}}</li>
</ul>
<script type="text/javascript">
angular.element(document).ready(function () {
angular.bootstrap(document, ['hubServices']);
});
function OneController($scope, adminHub) {
$scope.users = adminHub.getUsers();
}
</script>
This will create a UL which uses the OneController function as a controller.
OneController function gets an instance of adminHub via angular’s dependency injection – note how the 2nd parameter name is same as the name provided to factory function, and how bootstrap contains name of a module.
And that’s pretty much it.
See the results here: http://jsfiddle.net/etcoding/vAzb7/5/