通常,您会看到Angular在具有指令的页面上初始化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>
Run Code Online (Sandbox Code Playgroud)
你可以像这样定义你的 javascript 并且它会工作:
<script>
function SomeController($scope) {
$scope.something = "Hello";
}
</script>
Run Code Online (Sandbox Code Playgroud)
编辑:
正如评论中提到的,您仍然可以使用 来启用此行为$controllerProvider.allowGlobals()
。也就是说,Angular 团队从一开始就试图阻止我们以这种方式定义控制器,并且应该避免:
注意:虽然 Angular 允许您在全局范围内创建控制器函数,但不建议这样做。在真实的应用程序中,您应该为您的应用程序使用 Angular 模块的 .controller 方法 [...]
归档时间: |
|
查看次数: |
3747 次 |
最近记录: |