我看过很多不同功能参数的指令。到目前为止,我已经看到了类似的事情:
空功能:
.directive('myDialog', function() { /* ... */ });
数组:
.directive('myDraggable', ['$document', function($document) { /* ... */ });
还有一些:
.directive('tetris', function ($timeout) { /* ... */ });
.directive('mypopover', function ($compile,$templateCache) { /* ... */ });
.directive("myDirective", function($document) { /* ... */ });
我知道这只是不同的变量名,但它似乎用于不同的行为。 指令功能如何工作?
答案 0 :(得分:2)
这不仅适用于指令,但这是AngularJS handles dependency injection的语法。您可以按任何顺序将您喜欢的任何依赖项注入要在组件中使用的回调函数。上面你已经发布了两种不同版本的语法 - 一种是数组,另一种是没有。
.directive("tetris", function ($timeout) {
这将自动注入 $timeout
服务到该指令,以便它可以在指令的定义和功能中使用。
.directive('myDraggable', ['$document', function($document) {
这是一种编写语法的不同方式,因此您可以随意调用$document
变量 - 这对缩小很有用。
依赖注入是AngularJS的一个杀手级功能,学习和理解它非常重要。