为什么即使我在JSFiddle中声明ng-app =“ MyApp”,也为什么需要angular.bootstrap

亚历山大·文图拉

我不真正理解为什么angular.bootsrap document, ['MyApp']在以下测试应用程序中管理模块和控制器的CoffeeScript代码的末尾必须做一个

这是HTML:

<div ng-app='InventoryModule' ng-controller='InventoryController'>
    <ul ng-repeat='item in items'>
        <li>{{item.title}}</li>
        <li>{{item.price | currency}}</li>
    </ul>
</div>

和CoffeeScript:

inventoryModule = angular.module 'InventoryModule', []

inventoryModule.factory 'Items', ->
    items = {}
    items.query = () -> [{title: 'Hello', price: '5'}]
    items

inventoryModule.controller 'InventoryController', ($scope, Items) ->
    $scope.items = Items.query()

angular.bootstrap document, ["InventoryModule"]

如果删除最后一行,则应用程序将无法正常工作。这是为什么?这在其他任何地方都没有得到真正的解释。

这是代码的小提琴:http : //jsfiddle.net/dralexmv/8km8x/11/

如您所见,该应用程序实际上可以正常工作。如果将bootstrap卸下,它将停止工作。

斯威

Tl;博士

将jsFiddle中的第二个下拉菜单设置为“ No wrap-in <head>”,您将不需要angular.bootstrap行。

小提琴

解释

加载Angular库后,它将扫描DOM以查找带有ng-app指令的元素当找到一个时,它将开始引导过程。

在该过程中,Angular将采用ng-app属性的值(在您的情况下为InventoryModule),并尝试查找具有相同名称的angular模块。如果失败,将抛出:Uncaught Error: No module: <module name>

在您的小提琴中,您已将“代码环绕”选择框设置为“ onLoad”。此下拉菜单指示jsFiddle何时初始化放置在JS框架中的JS代码。设置为“ onLoad”时,代码将在onLoad窗口事件中运行

另一方面,Angular引导过程将在上运行$(document).ready(),并且由于$().ready在“ onLoad”事件之前触发了该事件,因此Angular将尝试InventoryModule在模块定义之前就初始化模块,这"No module"将引发可怕的错误。

angular.bootstrap()是手动完成Angular在$().ready()处理程序中已经做过的事情的方式

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

ng-app或angular.bootstrap

来自分类Dev

为什么我的bootstrap clearfix在我的Rails集合中损坏?

来自分类Dev

为什么需要声明

来自分类Dev

为什么Angular $ routeProvider配置需要HTML中声明的ngView

来自分类Dev

为什么我的Bootstrap Toggle Navbar消失了?

来自分类Dev

为什么我的 bootstrap popover 打不开?

来自分类Dev

为什么我的 Bootstrap Carousel 不工作?

来自分类Dev

为什么我在Bootstrap中的轮播控件无法正常工作?

来自分类Dev

在 Bootstrap 中,为什么我的搜索按钮不是内联的?

来自分类Dev

为什么我的 Bootstrap 网格中的行重叠?

来自分类Dev

为什么App Engine模块需要外部IP?

来自分类Dev

ionic 2 Blank App 启动需要 10 秒,为什么?

来自分类Dev

Bootstrap-为什么我需要两个类来设计按钮样式?

来自分类Dev

为什么Span会在Bootstrap中中断

来自分类Dev

为什么div在Bootstrap中重叠?

来自分类Dev

为什么我的React App无法编译?

来自分类Dev

为什么即使我设置未大写的项目名称,iOS App名称也要大写?

来自分类Dev

为什么我可以在ng-app之外使用ng-bind?

来自分类Dev

为什么即使我们已经有/ data / dalvik-cache,也需要将* .odex文件放在/ system / app下?

来自分类Dev

为什么即使我们已经有/ data / dalvik-cache,也需要将* .odex文件放在/ system / app下?

来自分类Dev

为什么angular的ng-disabled不能与bootstrap的btn类一起使用?

来自分类Dev

为什么ng-app不是ng-module?

来自分类Dev

为什么Angular需要包装器?

来自分类Dev

为什么Angular Controller需要“ $ scope”

来自分类Dev

为什么Angular Controller需要“ $ scope”

来自分类Dev

为什么 Angular 需要 Node.js?

来自分类Dev

为什么我在angular-bootstrap标签集中出现了nonassign错误?

来自分类Dev

为什么不能在异步函数中声明app.use(...)?

来自分类Dev

为什么不能在异步函数中声明app.use(...)?

Related 相关文章

  1. 1

    ng-app或angular.bootstrap

  2. 2

    为什么我的bootstrap clearfix在我的Rails集合中损坏?

  3. 3

    为什么需要声明

  4. 4

    为什么Angular $ routeProvider配置需要HTML中声明的ngView

  5. 5

    为什么我的Bootstrap Toggle Navbar消失了?

  6. 6

    为什么我的 bootstrap popover 打不开?

  7. 7

    为什么我的 Bootstrap Carousel 不工作?

  8. 8

    为什么我在Bootstrap中的轮播控件无法正常工作?

  9. 9

    在 Bootstrap 中,为什么我的搜索按钮不是内联的?

  10. 10

    为什么我的 Bootstrap 网格中的行重叠?

  11. 11

    为什么App Engine模块需要外部IP?

  12. 12

    ionic 2 Blank App 启动需要 10 秒,为什么?

  13. 13

    Bootstrap-为什么我需要两个类来设计按钮样式?

  14. 14

    为什么Span会在Bootstrap中中断

  15. 15

    为什么div在Bootstrap中重叠?

  16. 16

    为什么我的React App无法编译?

  17. 17

    为什么即使我设置未大写的项目名称,iOS App名称也要大写?

  18. 18

    为什么我可以在ng-app之外使用ng-bind?

  19. 19

    为什么即使我们已经有/ data / dalvik-cache,也需要将* .odex文件放在/ system / app下?

  20. 20

    为什么即使我们已经有/ data / dalvik-cache,也需要将* .odex文件放在/ system / app下?

  21. 21

    为什么angular的ng-disabled不能与bootstrap的btn类一起使用?

  22. 22

    为什么ng-app不是ng-module?

  23. 23

    为什么Angular需要包装器?

  24. 24

    为什么Angular Controller需要“ $ scope”

  25. 25

    为什么Angular Controller需要“ $ scope”

  26. 26

    为什么 Angular 需要 Node.js?

  27. 27

    为什么我在angular-bootstrap标签集中出现了nonassign错误?

  28. 28

    为什么不能在异步函数中声明app.use(...)?

  29. 29

    为什么不能在异步函数中声明app.use(...)?

热门标签

归档