问题标签 [elementref]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2195 浏览

angular - Angular 4+ 检测 Div 或嵌套子 Div 中的点击并与其他外部 Div 区分开来

我见过许多 Angular 2 页面循环遍历 nativeElements 的层次结构。它们在 Angular 4、5 中不起作用……我需要向“工作区”DIV 添加指令。将有其他 Div 作为工作空间的父级,而其他 Div 是嵌套到任何级别的子 DIV。该指令必须检测“工作区” div 或任何嵌套 div 的鼠标单击,我必须确定它实际上是嵌套子级或工作区——而不是工作区上方或工作区外的其他 div。

这源自网络上的众多示例之一:

测试HTML:

当我在 Chrome 调试器中暂停时,我可以使用控制台使 parentNode 或 parentElement 工作。但是,我无法通过 Typescript/Angular CLI。我确保我正在运行@latest Angular。(这是 5 个)。

任何帮助将不胜感激。提前致谢。

0 投票
1 回答
10986 浏览

angular - Angular 4 - 如何将 div 的渲染高度应用到另一个 div?

我有两个命名模板。每当第一个的内容发生变化时,我想将第一个的高度应用于第二个。我可以使用组件内的 ElementRef 访问它们。因此,当我更改绑定到第一个模板的属性时,我使用相应的 ElementRef 来获取它的高度并将其应用于第二个模板的 ElementRef。

现在,问题是,在属性更改后,我从第一个模板对应的 ElementRef 得到的高度不是更新后的高度。它返回属性更改和重新渲染之前 div 的高度。

我希望能够在 div 更新后获得实际呈现的高度。我究竟做错了什么?

更新:

编码:

这里profile是第一个div对应的ElementRef和第二个div对应的ElementRef。属性更改后,我调用包含上述代码的函数。那么我得到的高度就是div的旧高度,也就是属性改变和重新渲染之前的高度。

0 投票
1 回答
7244 浏览

angular - 需要访问 Angular 5 指令文本

我正在尝试创建一个自定义指令来替换我的自定义指令的内部文本。我似乎无法访问内部文本内容来应用一些逻辑。

这是代码:

用法:

我想检查标签内的文本,在本例中是“一些文本”。我似乎无法在指令中访问它。

我应该改用组件吗?

0 投票
1 回答
45 浏览

javascript - 为多个子组件标签添加属性

我使用使用 Material Design 的 Alfresco ADF。他们有一个数据表组件,它实际上使用了 Angular Material Table。

现在为了实现拖放功能,我需要draggable="true"在每个mat-row标签上添加。

我该如何做到这一点?我听说您应该使用 Renderer2 和 ElementRef,以便访问 DOM 元素并更改其属性。

或者还有其他方法吗?

0 投票
1 回答
156 浏览

angular - 创建角度指令,如何从 ElementRef 获取列表项的属性值?角 5

我有一个带有链接列表的典型导航栏。

我正在尝试通过创建一个简单的角度指令(“授权”)来清理导航栏的 HTML,如下面的 HTML 片段所示,但要做到这一点,我需要我的指令能够接收 [routerLink] 属性的值列表中的每li一项

这是我的导航栏 html,在列表的顶层具有“授权”属性。

我希望我的指令能够读取每个 routerLink 值并将该值传递给 this.routerGuard.permissionApproved()。到目前为止,我一直无法从 ElementRef 中检索这些值。

0 投票
1 回答
371 浏览

angular - 角度观察输入值

观察输入 HTML 元素的值的最佳做法是什么?我需要动态添加尽可能多的输入。因此,我不能使用ngModel. 此时我正在使用ElementRef.

我正在尝试创建一个对象,其中的值适应变化:

解决方法:

0 投票
1 回答
1299 浏览

angular - Angular 获取 routerLinkActive 的 ElementRef

如标题所示,我需要获取 routerLinkActive 的 ElementRef 以了解我需要在哪里放置“墨水条”(例如 Material Design 选项卡)在正确的位置。

这里有我的 sideNav 菜单

第一个“li”元素为 180px,元素之间的偏移为 60px。但我需要知道开始时哪个是活动元素(例如,如果用户将 URL 粘贴到浏览器中),有一种方法可以获取 activeLink 的 ElementRef

0 投票
1 回答
3488 浏览

angular - angular templateRef nativeElement 是空注释而不是原始元素

我正在开发一个将下拉列表转换为radioListbox 的角度指令。这是我的初始代码:

它应该记录TemplateRefElementRef的 nativeElement 是一个select. 但结果是空注释,它的下一个元素是select.

在此处输入图像描述

0 投票
1 回答
617 浏览

angular - Angular - 如何在点击处理程序中访问 nativeElement

也许只是一个“时尚”,但仍然......

我有以下工作:

它可以工作 ( the console shows 123, 456,...),但使用 _elemntRef 访问 nativeElelement 听起来像一个 hack(下划线表示私有属性,如 _privateVar,不是吗)。

那么访问 nativeElement 或者甚至更好的 'media-id' 属性的更优雅的方法是什么?

非常感谢任何提示。

编辑

这个问题的答案在user184994JB Nizet的评论中。由于他们都正确解决了问题,我无法设置“已接受答案”标志,因为它只能分配一次。

因此,我正在编辑我的问题以确认这一点。

0 投票
1 回答
961 浏览

angular - 如何在ionic中使用render2设置子标题的样式?

我想根据滚动的像素量分别隐藏我的应用程序的标题和子标题。这是我的 home.html 文件:

我想访问子标题。我尝试了以下代码,作为自定义指令

我可以隐藏标题,但我无法隐藏子标题。我不知道如何使用渲染访问子标题。