考虑下面的代码:
html文件的一部分:
<body ng-app>
<div ng-controller="MainCtrl">{{name}}</div>
</body>
js文件的一部分:
function MainCtrl($scope) {
$scope.name = "John";
}
我总是将我的控制器放在某个模块中,我的名字在ng-app中定义。 当我没有定义任何模块时它是如何工作的?
答案 0 :(得分:9)
Angular,具有这种“自动发现”功能,如果在全局范围内定义控制器,它可以按名称查找控制器。
此功能主要用于快速演示/原型/概念验证片段,而不是真实世界的应用程序。
来自Angular的 Developer Guide :
注意:虽然Angular允许您在全局范围内创建Controller函数,但不建议这样做。在实际应用程序中,您应该使用Angular模块的
.controller
方法来处理应用程序[...]
关于空ngApp
,如果没有指定名称,它只表示没有模块可以分配控制器,指令和服务,但除此之外一切正常。