我一直在玩AngularJS的种子应用程序,我注意到应用程序的大多数依赖项(控制器,指令,过滤器,服务)都是预先加载的.我想知道如何将Angular应用程序模块化为更小的字节,除非需要,否则不会加载依赖项.
例如,如果我有一个有购物车的大型应用程序,添加/编辑送货地址,搜索结果,产品详细信息,产品列表等等......购物网站上的用户可能永远不会遇到任何这些视图,但它看起来像喜欢(来自种子应用程序)在启动时加载这些所有视图的代码.
如何在AngularJS中减轻模块化?
pko*_*rce 21
关于模块化的这个问题在SO和谷歌小组中经常被问到.我不是核心团队的一员,但我的理解如下:
您可以通过包含它们(ngInclude)或在指令/路由中引用它们来轻松地按需加载部分(HTML /模板片段).所以至少你不需要预先下载所有的部分内容(虽然你可能想这样做,请看这里的另一个问题:有没有办法让AngularJS在开始时加载部分而不是在需要时?)
谈到JavaScript(控制器,指令,过滤器等 - 基本上是AngularJs模块中定义的所有内容),我认为目前还没有支持AngularJS中模块的按需加载.核心团队关闭的这个问题证明了这一点:https://github.com/angular/angular.js/issues/1382
缺乏AngularJS模块的按需加载可能听起来像一个很大的限制,但是:
现在,由于这个问题经常回来,我确信AngularJS团队已经意识到了这一点.事实上,我最近看到了一些实验提交(https://github.com/mhevery/angular.js/commit/1d674d5bfc47d18dc4a14ee0feffe4d1f77ea23b#L0R396),表明支持可能正在进行中(或者至少有一些实验).
mat*_*4pl 14
我最近一直在玩需求模块和角度,我已经实现了部分和控制器的延迟加载.
无需对Angular源(版本1.0.2)进行任何修改即可轻松完成.
存储库:https://github.com/matys84pl/angularjs-requirejs-lazy-controllers.
还有一个实现使用Charles Fulnecky制作的yepnope(https://github.com/cmelion/angular-yepnope).
| 归档时间: |
|
| 查看次数: |
5722 次 |
| 最近记录: |