Shlomi Schwartz Shlomi Schwartz - 11 months ago 57
AngularJS Question

Creating common controller functions

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';

/* App Module */

angular.module('lpConnect', []).
config(['$routeProvider', function($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

How should I do it in AngularJS?

Answer Source

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 = {}; = function(msg){
        return root;

In your controller you would inject this so

function MainAppCtrl($scope,CommonCode)
     $scope.alerter = CommonCode;
     $"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 understand what is happening here. )