Angularjs 角度控制中的控制器代码组织
所以,我正在进行我的第一个主要项目。我有一个控制器正在做大量的腿部工作,它已经达到了需要数千行JavaScript的程度 我想以某种方式打破这一点,但我似乎在任何地方都找不到可靠的例子。代码主要由用于对对象进行计算的函数组成,因此指令和模块似乎不是正确的答案,但我可能错了Angularjs 角度控制中的控制器代码组织,angularjs,Angularjs,所以,我正在进行我的第一个主要项目。我有一个控制器正在做大量的腿部工作,它已经达到了需要数千行JavaScript的程度 我想以某种方式打破这一点,但我似乎在任何地方都找不到可靠的例子。代码主要由用于对对象进行计算的函数组成,因此指令和模块似乎不是正确的答案,但我可能错了 你们是如何在大型项目中组织代码的?我是应该接受它,还是有一种合理的方法将其拆分为易于扫描的文件?我建议至少将其中一些对象及其相关计算放入服务中,然后将服务注入控制器中。有关封装某些数据并提供访问/操作该数据的方法的服务示例,请
你们是如何在大型项目中组织代码的?我是应该接受它,还是有一种合理的方法将其拆分为易于扫描的文件?我建议至少将其中一些对象及其相关计算放入服务中,然后将服务注入控制器中。有关封装某些数据并提供访问/操作该数据的方法的服务示例,请参见 查看是否可以将控制器拆分为多个控制器,每个视图一个控制器。视图可以与页面一样大,也可以只是页面上的某个块/块
引用我最近在谷歌集团看到的一篇帖子:“我更喜欢将angular控制器视为我视图中愚蠢的API/Config,将所有繁重的工作留给服务。”——当你在控制器中时,有几件事你需要问问自己
总而言之,控制器只是一个将业务逻辑和视图粘合在HTML中的地方。从技术上讲,它不应该包含除这些胶水以外的任何东西 我通常创建一个Util工厂(现在在Angular而不是services中似乎是这样),并让它作为一组方法返回任何共享逻辑
+1 AngularJS文档声明控制器应“仅包含单个视图所需的业务逻辑”。但我发现,一旦某些数据需要在两个控制器或两个视图之间共享,最好将数据(以及操作数据的方法)放入服务中。因此,我认为我更喜欢您的建议--首先将业务逻辑放到服务中,然后在多个视图或控制器需要时做好准备。谢谢。只是分享一下,这可能会给你一些想法。我实际上是在将$scope变量从控制器传递到服务,它工作得很好,因为在服务中我们引用了$scope.x,但它看起来很难看,我的团队中没有人特别喜欢这种模式,包括我自己:/