Angular - 函数参数中的依赖函数或依赖函数?

时间:2015-06-28 14:31:36

标签: angularjs controller dependencies code-injection

我是棱角分明的新手,每个教程都是以不同的方式做事而且令人困惑。我设法了解最佳实践并遵循它们。但请查看:

enter image description here - 看看微软的人们如何将$ scope和function放在依赖括号中。

另一方面,这个家伙Egghead正在这样做:

enter image description here

他将依赖项放在函数参数中。

差异是什么,最佳做法是什么?

3 个答案:

答案 0 :(得分:1)

这些有效地做同样的事情,并且是AngularJS提供的Dependency Annotation的不同形式。如果代码缩小,后者将无效,因为它将变为.controller('TodoListController', function (a, b) {并且没有a服务。前者仍然具有'$scope'字符串,因此Angular知道要注入什么服务。

您可以使用ng-annotate库从隐式注释代码中生成缩小代码。

我发现隐式注释更容易阅读,当然它更容易编写。如果您需要缩小代码,可以使用ng-annotate作为额外步骤添加构建,因此无关紧要。如果您不需要缩小代码并且只是编写非生产示例,则无需使用内联数组注释。

这是无关的,但由于Angular的$scope语法,现在需要注入controller as的次数要少得多。

答案 1 :(得分:0)

将依赖项放在依赖括号中是最佳做法。因为否则代码将无法在部署时最小化。

使用依赖括号时,传递给此控制器的参数将始终解析为括号内的字符串名称。当你不这样做时(查看Egghead示例),sharedScope参数将无法重命名为较短的名称(以最小化),因为Angular不知道它应该注入什么依赖。

答案 2 :(得分:0)

使用Microsoft示例,这样做是件好事,当你决定在某一点上缩小你的代码时,那么这种类型的写入依赖将没有错误(用于缩小)......