[英]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.