element.ready与angular.element($document).ready的区别

4

我正在开发一个指令,但是我不想使用$document$window,只想使用element本身。

之前的代码如下:

angular.element($document).ready(function() {...});

我之前在工作,只是几分钟前进行了更改,加入了以下内容:

element.ready(function() {...});

它也在工作。

所以,当我说element.ready(function() {...})时,我是在告诉Angular在元素<my-directive></my-directive>准备好时运行该函数吗?还是我在做什么?

我问这个问题是因为我想知道,如果我使用element.ready而不是element.ready(function() {...}),它为什么仍然可以工作。

2个回答

6

你两个都不需要。

ready 不需要,因为元素必须存在才能触发链接函数。此外,没有元素级别的 ready 事件……它仅在文档级别使用,以考虑页面的完整主体存在。当 Angular 编译指令时,这个阶段已经过去了。

你可以直接在指令的 link 函数中立即对 element 进行任何操作或事件绑定。


1
为了清晰起见,它应该是“post”链接函数(这是“link:function(){...}”的默认设置)。 - Phil
是的,这并非必要,但顺便提一下,它是相同的,没有不同之处。 - S. Ali Mihandoost

-4
在AngularJS中,angular.element是一个jqLite对象。
在Angular指令中,元素是一个jqLite对象,您不需要再次使用angular.element进行包装。
例如,在此代码中,所有元素都是相同的。
var element1 = angular.element( document.getElementById('test') ); // a jqLite object

var element2 = angular.element( element1 ); // same jqLite object

var element3 = angular.element( element2 ); // same jqLite object

顺便说一下,您不需要使用ready,因为指令链接在元素准备就绪时调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接