$ inject注释在angularjs上

时间:2013-04-22 14:26:50

标签: angularjs

我看到Angular Seed在Controllers引用上带有$ inject注释,这意味着我可以用控制器声明控制器的依赖关系。

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

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

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

我找到了解释here

所以,我怀疑是:

  1. 此注释还有另一种用途吗?
  2. 关于非缩小的JS来源,不使用它有什么优点或缺点吗?
  3. 提前致谢。

1 个答案:

答案 0 :(得分:3)

$ inject的目的是确保在代码缩小时正确注入依赖项。

在AngularJS中有三种管理依赖关系的方法 - DI in AngularJS

数组表示法是我首选的方法,因为它比$ inject方法简单。

回答您的具体问题:

  1. 不,我不知道$ inject的另一种用途。
  2. 如果您不使用链接文章中提到的前两种方法之一,那么如果某人缩小了源代码,您的代码将无法运行。数组表示法很简单,它使你的代码与minifiers兼容,所以我不知道为什么你不会使用它。