0

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

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

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

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

我在这里找到了解释。

所以,我的疑问是:

  1. 这个注解还有其他用途吗?
  2. 在非缩小的 JS 源上,不使用它有什么优点或缺点吗?

提前致谢。

4

1 回答 1

3

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

AngularJS中管理依赖的三种方式——AngularJS中的DI

Array Notation 是我的首选方法,因为它比 $inject 方法更简单。

要回答您的具体问题:

  1. 不,我不知道 $inject 的其他用途。
  2. 如果您不使用链接文章中提到的前两种方法之一,那么如果有人缩小源代码,您的代码将无法运行。数组表示法很简单,它使您的代码与缩小器兼容,所以我不知道您为什么不使用它。
于 2013-04-22T14:34:55.193 回答