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 ?
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 ?
Share Improve this question asked Jun 5, 2014 at 7:49 Adrian BaranAdrian Baran 8958 silver badges24 bronze badges1 Answer
Reset to default 9Angular, 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 remended. 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.