angularjs上的$inject注释

angularjs上的$inject注释,angularjs,Angularjs,我看到了控制器引用上的$inject注释,这意味着我可以用它声明控制器的依赖项 显示构造函数需要与操作系统控制器的当前参数同步 此外,在中,它还展示了此注释的一个用途,在缩小的JS源代码上非常有用。像这样: var MyController = function(renamed$scope, renamedGreeter) { ... } MyController.$inject = ['$scope', 'greeter']; 在那里我找到了一个解释 因此,我的疑问是: 此注释还有其他用

我看到了控制器引用上的$inject注释,这意味着我可以用它声明控制器的依赖项

显示构造函数需要与操作系统控制器的当前参数同步

此外,在中,它还展示了此注释的一个用途,在缩小的JS源代码上非常有用。像这样:

var MyController = function(renamed$scope, renamedGreeter) {
  ...
}
MyController.$inject = ['$scope', 'greeter'];
在那里我找到了一个解释

因此,我的疑问是:

  • 此注释还有其他用途吗
  • 在非小型JS源上,不使用它有什么优点或缺点

  • 提前感谢。

    如果代码被缩减,$inject的目的是确保正确注入依赖项

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

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

    要回答您的具体问题:

  • 不,我不知道$inject还有其他用途
  • 如果您不使用链接文章中提到的前两种方法中的一种,那么如果有人缩小源代码,您的代码将无法运行。数组表示法很简单,它使您的代码与minifier兼容,所以我不知道您为什么不使用它

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

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

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

    要回答您的具体问题:

  • 不,我不知道$inject还有其他用途
  • 如果您不使用链接文章中提到的前两种方法中的一种,那么如果有人缩小源代码,您的代码将无法运行。数组表示法很简单,它使您的代码与minifier兼容,所以我不知道您为什么不使用它

  • 你能澄清第二点吗谢谢,我看不出这和第一点是一样的。删除。你能澄清第二点吗谢谢,我看不出这和第一点是一样的。删除。非常感谢您的回答。有些事情对我来说越来越清楚了。马克·谢丽塔你知道谷歌闭包编译器对我来说是否工作得很好吗?非常感谢你的回答。有些事情对我来说越来越清楚了。马克·谢丽塔你知道谷歌闭包编译器对我来说是否工作得很好吗?