使用控制器的Prototype方法

时间:2015-09-16 22:06:19

标签: angularjs prototype angularjs-controller

我加入了一个我们正在使用AngularJS的团队。我在Javascript方面有很多经验,但刚刚开始使用AnjularJS。我们遵循John Papa的指南作为一般方法。我们到处都使用Controller作为语法。作为团队讨论的一部分,在保持控制器变薄的背景下提出了一点。并且一些成员认为所有方法都应该被定义为Controller原型的一部分而不是实例方法(附于此)。

我搜索了很多但是我没有使用这种方法比使用除了实例方法之外的任何特定优势/劣势。 1)具有共享内存的功能。 2)继承可以用来共享/重用控制器层次结构中的功能(我怀疑这是否是AngularJS控制器中的常见场景,如果控制器的层次结构是个好主意。)

我们已经决定了 1)应将所有方法添加到控制器原型中 2)注入的依赖关系应该通过将它们附加到"这个"变量,以便它们可用于投机型方法。

想知道AngularJS的任何明显优缺点。

我收到了John Papa的具体答复,我们遵循的指导方针与我的想法相符。             https://github.com/johnpapa/angular-styleguide/issues/524

但是我还是会喜欢其他有利/劣势的原因。这是因为这里的主要问题是使控制器(特别是控制器构造函数)变薄。没有移动方法原型是否有通用的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

  

为函数共享内存

为什么要共享功能?我没有看到任何优势。

  

这是因为这里的主要问题是保持控制器(特别是控制器构造函数)很薄。

如果这是问题,而不是认为共享对象函数,将解决此问题。尝试重构控制器:正如他们的名字所说,他们必须有一个简单的任务=>控制。 他们不会做这些事情,他们只是问。

  • 在服务中提取逻辑。
  • 不要在控制器中操作dom,使用指令(你注入$ document吗?)。
  • 在过滤器中提取简单的格式/演示文稿操作。