通常,您会在页面上使用ng-app =“myModule”这样的指令初始化Angular,但只使用ng-app是有效的.但是,像控制器这样的东西在myModule中注册,使用ng-app是否真的有用呢?如果没有指定模块到ng-app =“…”,有没有办法注册控制器等?
在Angular 1.3之前(当您可以在全局范围内定义控制器时),Angular能够自动发现全局定义的控制器.
从Angular 1.3开始,所有控制器都必须在一个模块中定义,因此,在没有模块的ng-app中,你将获得非常有限的功能.它可能有利于原型设计,但即使在那里,你也不会得到太多.
所以,预角度1.3用法:
<div ng-app> <div ng-controller="SomeController"> {{something}} </div> </div>
你可以像这样定义你的javascript,它会工作:
<script> function SomeController($scope) { $scope.something = "Hello"; } </script>
编辑:
如评论中所述,您仍然可以使用$controllerProvider.allowGlobals()启用此行为.也就是说,Angular团队试图阻止我们从一开始就以这种方式定义控制器,应该避免:
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 […]