“您看到我一直在阅读没有名字的应用示例......”
我最好停下来,否则我会听到Neil Young律师的来信。
我正在研究W3Schools上的AngularJS,在他们的一些例子中,ng-app属性是一个空字符串。在其他人中,它有一个应用程序的名称。似乎没有名称时,客户端脚本中也没有定义控制器功能,应用程序会自动从HTML连接。但是在这些示例中,如果我在ng-app标签中输入名称,则会破坏页面。因此提出了两个问题:
1 - 将ng-app标签与名称和带有空字符串的标签有什么区别?没有名字意味着没有定义控制器功能吗?
2 - 拥有一个没有名字的ng-app是不是很糟糕?我应该总是命名我的ng-app并用控制器功能加载吗?
“......从雨中出来感觉很好。”
编辑:查看替代问题“使用没有值的ng-app”,它是类似的,但它没有直接解决我的问题。它问:如何使用没有值的ng-app。我要求有人解释:使用ng-app与值和没有值有什么区别。
答案 0 :(得分:1)
您可以指定AngularJS模块作为应用程序的根模块。当应用程序被引导时,该模块将被加载到$ injector中。它应该包含所需的应用程序代码,或者依赖于包含代码的其他模块。有关更多信息,请参阅angular.module。
https://docs.angularjs.org/api/ng/directive/ngApp
有人已经问过这个问题
答案 1 :(得分:1)
虽然空ng-app
并不完全'不正确',但不推荐使用它,即使是稍微复杂的应用也无法使用。把它想象成一种快速展示鞭子的方法。
如果没有指定ng-app
,它只表示没有模块可以分配控制器(以及你想要的任何其他东西),但正如你所看到它仍然可以工作......暂时
答案 2 :(得分:1)
这里有几点:
推荐official docs,因为作者是最了解框架的人。
bootstrap the angular apps有两种方式:自动和手动方式
当您使用ng-app="appName"
时,angularjs会自动找到带有“ng-app”标签的元素并初始化该应用程序。
当你忽略ng-app
时,你需要自己引导应用程序:
angular.element(document).ready(function() {
angular.bootstrap(document, ['myApp']);
});
=== EDIT ===
更清楚:
ng-app
作为DOM元素属性而没有任何值,因为angularjs将为您处理其他所有事情
<div ng-app>
....
</div>
但在1.3版之后,不建议使用此语法。相反,您可以使用前面提到的“自动”方式和“手动”方式。