将angular元素的范围限制为指令

时间:2014-02-20 00:06:19

标签: javascript angularjs

我有一个指令,在这个指令中我想操纵滚动上的一些元素。目前我正在使用:

 angular.element( document.getElementsByClassName('splash-content') );

哪个好,但看起来效率不高。

我真正想做的是将选择器限制为调用该指令的元素的范围(子元素)。在jQuery中,我使用element.find('.splash-content')element.children('.splash-content'),但在angularjs中,您似乎无法在这些方法中添加选择器。

那么,最好(也是最有效)的“角度”方式怎么做?

谢谢!

1 个答案:

答案 0 :(得分:1)

我创建了一个简单的小提示,展示了如何在不包含jQuery怪物的情况下完成此类操作:http://jsfiddle.net/ADukg/4769/

例如,将它放在你的指令中:

var childFind = function(children, className, results) {
    for(var i=0; i<children.length; i++){        
        var child = angular.element(children[i]);
        if(child.hasClass(className)){
            results.push(child);
        }                    
        childFind(child.children(), className, results);        
    }
}            

childFind(children, 'one', results);

显然,这种事情并不像jQuery提供的方法那样广泛或完整,但是如果你只需要一些小的一次性功能,我会选择在这里和那里添加一个简单的帮助函数而不需要jQuery。