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

时间:2014-06-20 20:35:11

标签: javascript html angularjs angularjs-directive conditional

这是我在尝试学习角度时遇到的一般问题。

  

如何创建仅对某些元素起作用的指令   哪个具有指令名称和ID,类或其他属性?   或者/你如何制定一个做不同事情的指令   取决于ID,Class或其他属性?

我不是指作为类创建指令的类型,而只是使用ngClass。作为一个例子......想象一下,用户正在定义HTML的一部分而我无法触摸它,但我知道会有一个带有ul和li的导航标签。如何制作可应用于id="navi"导航代码的指令,而不会影响页面上的其他导航代码?


要说清楚,我来自jQuery背景,所以我试图忘掉很多坏习惯lol。我已经习惯了通过$选择元素或元素集合并应用某种操作或者你有什么的概念。在我无法直接触摸部分HTML的情况下,如何实现这种类型的功能选择性过滤?

1 个答案:

答案 0 :(得分:2)

您可以访问element以及link函数中该元素的属性。关于你的例子<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是一个包含所有元素属性的对象。