Angularjs - 单个与多个ng-app?

时间:2015-08-27 02:44:36

标签: angularjs

我正在开发一个网络应用。 Spring从控制器到数据库都支持它。目前,我使用Spring MVC控制器中的get方法处理页面导航以访问页面。

我打算使用angular JS来完成我的UI工作。我已经找到了如何做到这一点的例子,这一切都很好,但我不确定...

NG-应用

1-我应该每个应用程序使用一个还是每页一个,否则无关紧要?

2-如果我决定什么时候无关紧要?

我看到在html标签上使用它的示例以及在div中使用的其他一些示例但是我不确定如何决定可能是因为对框架缺乏了解。

2 个答案:

答案 0 :(得分:4)

angular docs

  

每个HTML只能自动引导一个AngularJS应用程序   文献。文档中找到的第一个ngApp将用于定义   作为应用程序自动引导的根元素。要运行多个   HTML文档中的应用程序必须手动引导它们   使用angular.bootstrap代替。 AngularJS应用程序不可能   相互嵌套。

您可以定义多个模块,这些模块之间可能存在依赖关系。

angular.module('Core', []);
angular.module('Module1', ['Core']);
angular.module('Module2', ['Core']);

在每页上使用适当的模块。 你应该有多少个模块?这取决于您的应用程序的复杂程度以及您希望如何构建它。

所以,是的,如果你刚开始有角度,我就说不要为此烦恼太多。将所有内容放在一个模块中,然后重构。关于角度还有其他更棘手的部分你应该关注。

另外,您可能需要查看此style guide

编辑

为了清楚起见,我们的想法是使用一个ng-app并根据您网站的区域选择适当的模块来引导应用程序(如果您正在构建单个页面应用程序,则不适用你应该只有一个模块负责引导你的应用程序)

答案 1 :(得分:-1)

如果您没有第二个应用程序的源代码,您也可以将页面分成2个并将每个应用程序合并为一个,因为您的主应用程序不必等待第二个应用程序应用程序完成加载加载。第二个应用程序大多只是添加任何方式。

对于所有服务/工厂,模块/控制器,我还没有看到任何专业页面使用多个ng-app,这是有道理的。每次加载应用程序需要很长时间,在一个页面中只需2个简单的应用程序,加载小页面可能需要30秒以上,而使用多个模块和服务可以在10秒内完成。(我故意限制网来测试它的速度)。上帝知道如果这两个人很复杂需要多长时间。

<强>更新

有一个修复使用来自角度UI的UI路由处理这个加载问题非常好(时间下降到原始方式的20%)并且它还有助于将页面拆分为2个应用程序,就像我在开始时所说的减去需要将页面分成两部分。尽管如此,仍然没有看到任何好的示例,特别是对于手持设备,它只会使页面更复杂。