通常,您会在Angular页面上看到类似指令的Angular初始化ng-app="myModule",但仅使用即可ng- app。但是,随着诸如控制器之类的东西被注册myModule,仅使用它是否有用ng-app吗?如果不指定模块,是否可以注册控制器等ng- app="..."?
ng-app="myModule"
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团队从一开始就试图阻止我们以这种方式定义控制器,应该避免:
$controllerProvider.allowGlobals()
注意:尽管Angular允许您在全局范围内创建Controller函数,但不建议这样做。在实际的应用程序中,应为应用程序使用Angular Module的.controller方法[…]