How do I create some sort of utils bundle that would be accessible from all my controllers?
I have this route code in my main module:
'use strict';
angular.module('lpConnect', []).
config(['$routeProvider', function($routeProvider) {
$routeProvider.
when('/home', {template: 'views/home.html', controller: HomeCtrl}).
when('/admin', {template: 'views/admin.html', controller: AdminCtrl}).
when('/connect', {template: 'views/fb_connect.html', controller: MainAppCtrl}).
otherwise({redirectTo: '/connect'});
}]);
I want a function that can be common to HomeCtrl
, AdminCtrl
and MainAppCtrl
.
How should I do it in AngularJS?
The way to define common code in angular is through Services.
You would define a new service like so :
.factory('CommonCode', function ($window) {
var root = {};
root.show = function(msg){
$window.alert(msg);
};
return root;
});
In your controller you would inject this service..like so
function MainAppCtrl($scope,CommonCode)
{
$scope.alerter = CommonCode;
$scope.alerter.show("Hello World");
}
Just include CommonCode as an argument to your controller function.. Angular will take care of injecting it for you ( Read on Dependancy Injection ..to understand what is happening here. )