繁体   English   中英

正确移动角度元素的方法

[英]Proper way to traverse the angular.element

我正在使用一条指令,在该指令的链接函数中获得了DOM元素,并且在其中有一个要访问的元素。

// element = <directive>
//             ...
//             <div id="target"></div>
//             ...
//           </directive>

如果我想获取该元素(例如执行一个.click()事件),则需要使用“ document ”对象,因为我还没有找到一种直接直接访问此#target元素的方法。

您知道执行此操作的正确方法吗? 不幸的是,jqLit​​e仅给我们提供了一个find()函数,在该函数中无法按id而不是class搜索

就个人而言,当我使用angularjs时,我将所有内容包装在一个新引用中,该引用自动使用querySelectorAll定位DOM,如下所示:

YOUR_APP.run(function() {
    jqLite = function(selector) {
        var selectorResult = (typeof selector == 'object') ? selector : document.querySelectorAll(selector)
        return angular.element(selectorResult)
    }; 
})

因此,我可以像使用jQuery一样使用它,方法是: jqLite('body > div').addClass('whatever');

在极少数情况下,它的行为不像jQuery,例如,通过使用querySelectorAll,您将不再像jQuery那样获得带有结果的对象数组,而是得到一个nodeList,因此无法将forEach方法应用于例如,但是有简单的解决方法。 每当新的参考jqLit​​e无法完成工作时,您始终可以直接使用angular.element。

但这应满足大多数jQuery需求的99%:)

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM