Angularjs-单个和多个ng应用程序?
我正在开发一个网络应用程序。它由Spring从控制器返回到数据库。目前,我使用SpringMVC控制器的get方法来处理页面导航,以访问页面 我计划使用angular JS来完成我的UI工作。我查阅了一些关于如何做到这一点的例子,这些都很好,但我不确定有什么 ng应用程序 1-我应该每个应用程序使用一个,还是每个页面使用一个,或者这无关紧要 2-如果我什么时候决定不重要 我看到一些例子在html标签上使用它,还有一些例子在DIV中使用它,但我不确定如何确定这一点,可能是因为对框架缺乏了解。 每个HTML只能自动引导一个AngularJS应用程序 文件。文档中找到的第一个Angularjs-单个和多个ng应用程序?,angularjs,Angularjs,我正在开发一个网络应用程序。它由Spring从控制器返回到数据库。目前,我使用SpringMVC控制器的get方法来处理页面导航,以访问页面 我计划使用angular JS来完成我的UI工作。我查阅了一些关于如何做到这一点的例子,这些都很好,但我不确定有什么 ng应用程序 1-我应该每个应用程序使用一个,还是每个页面使用一个,或者这无关紧要 2-如果我什么时候决定不重要 我看到一些例子在html标签上使用它,还有一些例子在DIV中使用它,但我不确定如何确定这一点,可能是因为对框架缺乏了解。 每个
ngApp
将用于定义
作为应用程序自动引导的根元素。运行多个
HTML文档中的应用程序必须手动引导它们
改用angular.bootstrap。AngularJS应用程序不能被删除
相互嵌套
您可以定义多个模块,这些模块之间可能存在依赖关系
angular.module('Core', []);
angular.module('Module1', ['Core']);
angular.module('Module2', ['Core']);
在每页上使用适当的模块。
你应该有多少个模块?这取决于您的应用程序有多复杂以及您希望如何构造它
所以,是的,如果你刚开始用angular,我会说不要太在意这个。将所有内容放在一个模块中,然后重构。关于角度,还有其他更棘手的部分,你应该关注
另外,你可能想看看这个
编辑:
需要明确的是,我们的想法是使用一个ng应用程序
,并根据您的站点区域选择适当的模块来引导应用程序(如果您正在构建一个单页应用程序,而您应该只有一个模块负责引导应用程序,则不适用)1-我应该为每个应用程序使用一个,还是为每个页面使用一个,或者这无关紧要?
不,不要每页使用应用程序,angular需要时间来引导整个应用程序,而且在服务器上运行时,编写ng应用程序甚至没有意义,这里是关于这一点的,单独维护每个应用程序将非常困难将每个逻辑分离到它自己的模块中,但仍然有一个启动程序/引导程序 2-如果我什么时候决定不重要? 这很重要 一些提示
- Angular具有良好的可扩展性,当应用程序完成后,在一段时间后,您决定添加新的内容,这非常容易
- 通过使用多个模块,你们可以将应用程序分成小块,所以当某个模块出现故障时,你们肯定知道是哪个模块导致了故障
- 在服务器端MVC框架中使用angular确实很痛苦,尽管这是可能的,但我不建议这样做。我的意思是,不要使用jsp或thymrleaf,只使用spring的REST(更好的RESTful,易于使用$resource)api
- 编写测试虽然是javascript,但编写测试可以让您对应用程序部件/模块充满信心。拥有高测试覆盖率就像是一个老板
- 不要相信你可以开始做伟大的应用,你必须阅读angular,观看教程,阅读文章/博客/stackoverflow。它有许多陷阱和奇怪的学习曲线,但它是值得的
使用angular UI的UI路由解决了这个加载问题(时间减少到原来的20%),并且它还帮助将页面拆分为2个应用程序,就像我在开始时所说的,不需要将页面拆分为2个。但仍然没有看到任何关于这种做法的好例子,特别是手持设备,这只会使页面更加复杂。我在示例中看到ng app=“myApp”成为模块声明(var app=angular.module('myApp',[]);)。所以我选择角交换应用程序和模块,还是我错了?还有,也许我不明白,但你对第一个问题的回答与你的第二个要点相矛盾。你说“永远不要每页使用应用程序”,但也说“使用多个模块让我们把应用程序分成小块”。单个应用程序,但多个模块
angular.module('myApp',['m1','m2','m3')
@Deshoder:我想他指的是单一引导点(就像java中的main方法一样),你应该使用“myApp”作为主模块(ng app=“myApp”
),但就像在java中一样,你不会将所有代码放在一个类中,不是吗?这就是为什么您还应该创建其他模块,并将它们指定为主模块的依赖项module@StefanBaiu这是一个很好的解释。现在,它让ng应用程序变得更加清晰:)那么,如果你将模块视为类,那么控制器如何适应这种类比?顺便说一句,很好的解释据猜测,是你的结束语要求就这个话题发送电子邮件。否则,这似乎是一个很好的答案:答案应该是独立的,而不是明确要求讨论或提出新问题。