一尘不染

使用不带值的ng-app

angularjs

通常,您会在Angular页面上看到类似指令的Angular初始化ng-app="myModule",但仅使用即可ng- app。但是,随着诸如控制器之类的东西被注册myModule,仅使用它是否有用ng-app吗?如果不指定模块,是否可以注册控制器等ng- app="..."


阅读 311

收藏
2020-07-04

共1个答案

一尘不染

在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团队从一开始就试图阻止我们以这种方式定义控制器,应该避免:

注意:尽管Angular允许您在全局范围内创建Controller函数,但不建议这样做。在实际的应用程序中,应为应用程序使用Angular
Module的.controller方法[…]

2020-07-04