2013-04-22 50 views
0

我已经看到,Angular Seed带有$注释控制器参考,这意味着我可以声明控制器的依赖关系。

DI documentation显示构造函数需要与当前参数os Controller同步。

此外,在this documentation中,它显示了此注释的一种用法,在缩小的JS源代码中有用。像这样:

var MyController = function(renamed$scope, renamedGreeter) { 
    ... 
} 
MyController.$inject = ['$scope', 'greeter']; 

其中我找到了一个解释here

所以,我的疑问是:

  1. 没有针对此批注其它用途?
  2. 关于非缩小JS源代码,有没有优势或劣势不使用它?

在此先感谢。

+0

你能否澄清第二点 – 2013-04-22 14:34:35

+0

谢谢,我没有看到这与第一点相同。删除。 – 2013-04-22 14:37:44

回答

3

$ inject的目的是为了确保在代码缩小的情况下正确注入您的依赖关系。

有三种方法在AngularJS管理依赖 - DI in AngularJS

排列标记是我的首选方法,因为它比$注射方法简单。

为了回答您的具体问题:

  1. 不,我不知道的另一个用途为$注入。
  2. 如果您没有使用链接文章中提到的前两种方法之一,那么如果有人缩小源代码,您的代码将无法正常工作。数组符号很简单,它使您的代码与缩小器兼容,所以我不知道为什么你不会使用它。
+0

非常感谢您的回答。 有些事情正在逐渐变得更加清晰。 – 2013-04-22 16:33:00

+0

Mark Sherretta你知道Google Closure Compiler是否可以正常工作? http://closure-compiler.appspot.com/home – 2013-04-25 19:56:15