javascript - 访问父控制器中指令的html内容
问题描述
我有一个叠加层,我通过访问 html 内容并获取高度、宽度等手动设置它的位置。
现在,我已将叠加层转换为指令。但我无法访问指令本身的 html 内容来更新位置。
我尝试了什么:我尝试在指令中使用 replace:true。但是当我尝试访问 div - 我仍然得到指令元素而不是指令 html 内容。例如:我的指令:
<my-dir somevalue='something'>
</my-dir>
指令 HTML:
<div class="overlay">
<span>{{somevalue}}</span>
</div>
现在,当我尝试访问指令元素时,我想访问“覆盖”类
解决方案
首先,在您的指令模板中,您可能应该指的是somevalue
,而不是something
,因为大概somevalue
是在指令范围内设置的内容。
然后要访问.overlay
子元素,在指令的link
函数中,您可以使用querySelector
指令的本机 DOM 元素上的方法,如下所示:
link: function (scope, el, attrs) {
var overlayElement = el[0].querySelector('.overlay');
}
el
传递给link
函数的是 jqLite-wrapped 指令元素,因此可以获得el[0]
本机 DOM 元素。
这是一个演示这种方法的小提琴。
推荐阅读
- angular - 在 Angular 中动态加载模块或组件
- python - Python:重复嵌套循环 - 如何正确堆叠它们
- python-3.x - 由于 libGl 错误,无法运行 docker 映像
- node.js - Cant Map() 通过对象数组
- java - 下一页标记不起作用,仅显示最多 (50) 个结果
- java - 模型类可以实现模型UI吗?
- r - 在这个交叉验证模型训练中,这个错误是由什么引起的?
- javascript - 通过 router-link 访问链接并通过相同的 URL 重新加载它有什么区别?- Vue - Vue 路由器应用程序
- java - log4j2 记录器丢失一些记录
- flutter - 在颤动中从另一个小部件更改状态?