繁体   English   中英

如果元素具有Id或Class(角),则应用Apply指令

[英]Apply directive if element has Id or Class (angular)

这是我尝试学习角度学习时遇到的一个普遍问题。

您将如何创建仅对具有指令名称和ID,类或其他属性的某些元素起作用的指令? 或/还有,您将如何根据ID,Class或其他属性制定一个执行不同操作的指令?

我并不是说您将指令创建为类,而仅使用ngClass 举个例子……想像一下一个场景,用户正在定义HTML的一部分,而我却无法触摸它,但是我知道在其中将包含带有ul和li的nav标签。 如何制定可应用于具有id="navi"的nav标签的指令,而不影响页面上的其他nav标签(如果有)?


明确地说,我来自jQuery背景,所以我试图学习很多坏习惯,哈哈。 我非常习惯于通过$选择元素或元素集合并进行某种操作或拥有什么的概念。 在无法直接触摸HTML部分的情况下,如何实现这种类型的功能选择性过滤?

您可以在link函数中访问手边的element以及该元素的属性。 有关您<nav id="navi">情况的示例:

<nav my-directive id="navi"></nav>

指令时间!

.directive("myDirective", [function() {
    return {
        restrict: "A",
        link: function(scope, elem, attrs) {
            if (elem[0].id == "navi") {
                //apply specific condition to elem here
            }
        }
    }
}]);

如您所见,您可以在链接函数中检查element特定属性。 attrs是一个具有所有elements属性的对象。

暂无
暂无

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

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