所以,我正处于Angular的第一个重大项目之中.我有一个控制器正在做大量的工作,它达到了成千上万行JavaScript的程度.
我想以某种方式解决这个问题,但我似乎无法在任何地方找到一个可靠的例子.代码主要由用于对对象进行计算的函数组成,因此指令和模块似乎不是正确的答案,但我可能在那里错了.
你们是如何在大型Angular项目中组织代码的?我应该把它搞砸一下,还是有一种理智的方法将其拆分成易于扫描的文件?
Mar*_*cok 26
我建议将至少一些对象及其相关计算放入服务中,然后将服务注入控制器.有关封装某些数据并提供访问/操作该数据的方法的服务示例,请参阅Sticky Notes第1部分博客条目.
看看你是否可以将你的控制器拆分成多个控制器,每个控制器一个.视图可以与页面一样大,也可以只是页面上的一些块/块.
引用我最近看到的谷歌小组的帖子:"我更倾向于将角度控制器视为我的观点的愚蠢api/configs,并将所有繁重的工作留给服务." - 参考
gan*_*raj 23
当你在控制器中时,你需要问自己一些事情.
你在控制器中进行任何DOM操作吗?这是肯定的NO.不要那样做.它始终属于指令部门.
您在控制器中编写任何业务逻辑吗?这也是一个NO.在大多数情况下,您的业务逻辑应存在于服务中.这是适合它的地方.
现在,看看你的控制器.它没有这两件事并且仍然大于1000行吗?这是不太可能的,但即使它以某种方式发生,然后考虑将您的控制器分解为更小的控制器.必须根据视图完成控制器的中断.
总而言之,您的控制器只是在HTML中粘贴业务逻辑和视图的地方.从技术上讲,它应该不包含除这些胶水之外的任何东西.