ngApp without using any specific module name

angularjs, javascript

Solution

Angular, has this "auto-discover" feature, that allows it to look up controllers by their name if they are defined on the global scope.

This feature is mainly intended for quick demos/prototypes/proof-of-concept snippets and not real-world applications.

From Angular's Developer Guide:

NOTE: Although Angular allows you to create Controller functions in the global scope, this is not recommended. In a real application you should use the `.controller` method of your Angular Module for your application [...]

Regarding the empty `ngApp`, if there is no name specified, it only means that there is no module to assign controllers, directives, services to, but other than that everything works fine.

Problem

Consider the piece of code below: part of html file: ``` <body ng-app> <div ng-controller="MainCtrl">{{name}}</div> </body> ``` part of js file: ``` function MainCtrl($scope) { $scope.name = "John"; } ``` I always put my controllers in some module, whose name I define in ng-app. How it works when I don't define any module ?

Original source