element.ready vs angular.element($document).ready

element.ready vs angular.element($document).ready

本文关键字:element ready document angular vs      更新时间:2023-09-26

我正在研究一个指令,但我不想玩$document$window,只有element本身。

之前我有:

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

和工作,就在几分钟前我改变了,并把:

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

,它也在工作。

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

我问这个,因为我想知道,为什么它仍然工作,如果我做element.ready代替。

你都不需要。

ready不需要,因为元素必须存在才能触发链接函数。也没有元素级别的就绪事件…它仅在文档级别使用,以说明存在的整个页面主体。当angular编译指令时,这个阶段早就结束了。

您可以在指令

link函数中直接对element进行任何操作或事件绑定。

在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,因为指令链接调用时,元素ready