Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ngApp without using any specific module name

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 ?

like image 908
Adrian Baran Avatar asked Jun 05 '14 07:06

Adrian Baran


1 Answers

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.

like image 194
gkalpak Avatar answered Sep 29 '22 09:09

gkalpak