I don't consider myself a highly skilled javascript developer, but I thought I got one thing right for sure: don't create global variables unless you really have to.

I've been learning angularjs lately and discovered one strange thing, almost everywhere in code samples for angular you can find constructions like the following.

'use strict';

/* Controllers */

var phonecatControllers = angular.module('phonecatControllers', []);

phonecatControllers.controller('PhoneListCtrl', ['$scope', 'Phone',
  function($scope, Phone) {
    $scope.phones = Phone.query();
    $scope.orderProp = 'age';

Source: official example app https://github.com/angular/angular-phonecat/blob/master/app/js/controllers.js

So I assumed I might be missing/misunderstanding something. Any thoughts except "since it's demo code, they don't care"?

  • @kdgregory: you may consider promoting your comment to an answer, since it actually answers the question. May 2, 2014 at 19:28
  • @MainMa - done, although I think it would be better just to delete the question.
    – kdgregory
    May 2, 2014 at 20:38

1 Answer 1


It's demo code. If you want to read it from the Angular developers, go here and scroll down until you see

In practice, you will not want to have your controller functions in the global namespace.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.