如何实现 Angular 指令来替换元素,但仅限于某些情况
How to implement an Angular directive to replace an element but only in certain cases.
我正在尝试实现一个指令,该指令将锚元素替换为div元素,但仅在特定情况下。锚元素的内容不应被替换,而应包含在新元素中。
这个想法是,锚元素可以有一个属性,其值是一个表达式,应该对其进行计算以检查是否必须替换它。
如果 fooBar 为真:
<a ys-deactivate-anchor="{{ fooBar == true }}"><span>Hallo</span></a>
应该成为
<div ys-deactivate-anchor="{{ fooBar == true }}"><span>Hallo</span></div>
我的指令目前看起来像这样:
commonModule.directive('ysDeactivateAnchor', function () {
return{
restrict: 'A',
scope: false,
replace: true,
template: function (elme, attrs) {
return "<div ng-transclude></div>";
},
transclude: true
};
});
替换现在按预期工作,我正在寻找一种仅在表达式为 true 时替换元素的方法。目前,除了自己进行整个更换之外,我不知道如何做到这一点。我尝试使用模板函数来检查属性。问题是,在模板函数中,您只能获取静态值,因为尚无可用于计算表达式的范围。
当然,我可以跳过替换和嵌入的东西,自己在链接功能中进行替换,但我想知道我是否可以以某种方式避免这种情况。
我会将此指令用作class
并带有条件激活类。
像这样:
<a ng-class="{ 'ysDeactivateAnchor' : fooBar, '':! fooBar}"><span>Hallo</span></a>
对于指令:restrict: 'C'
相关文章:
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在不传递此信息的情况下查找被调用的元素
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 如何在不影响其他元素的情况下扩展DIV
- 在不移动内部文本的情况下缩放元素的效果
- 如何使用JavaScript在没有html dom的情况下隐藏html元素
- 如何在没有回调的情况下获取有关元素的信息
- Ajax:只在元素存在的情况下调用Ajax
- 元素过多的HTML内存使用情况
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素
- jQuery-如何在给定延迟的情况下从元素中删除类
- 在不引用文档的情况下使用AngularJS获取元素
- JavaScript-在不影响索引的情况下将元素插入数组
- 如何在不使用multipleparent()调用的情况下找到(元素表的)第一个祖先
- 是否可以在不创建svg对象的情况下创建捕捉元素?[snap.svg]
- 在没有大量回调函数的情况下在列表元素上循环播放同一动画
- 在不使用sort()的情况下获取HTML LI元素的副本
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 如何在不丢失格式的情况下连续淡入() 元素文本的每个字符,包括嵌套元素
- 如何在不创建新元素的情况下修改 DOM 元素的位置