问题标签 [viewchild]
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.
dom - Angular 2 @ViewChild 返回未定义
我查看了几个相关的帖子和文档,但似乎仍然无法从@ViewChild 获得预期的行为。
最终,我试图设置一个 div 的滚动位置。此元素不是组件,而是我的 HTML 中的普通 div。
为此,我尝试使用@ViewChild 来获取我需要的DOM 元素,并设置它的滚动值。(顺便说一句,如果您知道没有@ViewChild(或jQuery)的更好方法来完成此任务,我们将非常感谢您的回答!)
目前,@ViewChild 只返回 undefined。进行一些虚拟检查: - 我正在 AfterViewInit 中访问我的元素 - 我在此元素上没有任何其他指令,如 *ngIf 或 *ngFor。
这是控制器:
和模板:
我的输出很简单:我的元素:未定义。
如您所见,我目前正在尝试通过 ID 访问元素,但也尝试过类名。任何人都可以提供更多关于 ViewChild 选择器查询的详细信息吗?
我还看到了将哈希“#”用作@ViewChild 使用的选择器标识符的示例——但这会导致我使用#gallery-container 时出现模板解析错误。
我想不出这里还有什么可能是错误的。感谢所有帮助,谢谢!
此处提供完整代码:https ://github.com/aconfee/KimbyArting/tree/master/client/KimbyArting/components/portfolio-page
angular - *ngIf 中的@ViewChild
问题
@ViewChild
显示模板中的相应元素后最优雅的获取方式是什么?
下面是一个例子。Plunker 也可用。
组件.模板.html:
组件.component.ts:
我有一个默认隐藏其内容的组件。当有人调用show()
方法时,它变得可见。但是,在 Angular 2 更改检测完成之前,我无法参考viewContainerRef
. 我通常将所有必需的操作包装成setTimeout(()=>{},1)
如上所示。有没有更正确的方法?
我知道有一个选项ngAfterViewChecked
,但它会导致太多无用的调用。
答案(Plunker)
inheritance - dart:用查询替换 ViewChildren
我知道我可以使用@ViewChildren
注释来访问 DOM 元素。但是,在这种特殊情况下,entries
属性是在祖先组件 ( MenuComp
) 中定义的。于是我尝试使用该queries
属性,如下:
但entries
仍为空。我是否queries
以错误的方式使用该物业?
angular - 在不使用 @ViewChild 注释的情况下访问组件
如何在不使用 @ViewChild 或 @ViewChildren 注释的情况下访问子组件?例如:
angular - Angular2 动态组件
我对Angular2很陌生,我还没有找到解决我正在尝试做的事情的方法。我将尝试用下面的例子来解释。
假设我们有一个父组件A可以包含子组件X或Y。这可以使用 viewchild 轻松解决。
但是,如果我们想在不重复代码的情况下动态加载子组件怎么办?
真实例子:
- 组件 U :由用户调用的组件,它调用组件 A 并根据用户的选择注入子组件(X 或 Y)。
- 组件 A:网格容器,可以是表格、面板或其他任何东西。
- 组件 X:包含服务 S1 的行的视图
- 组件 Y:包含服务 S2 行的视图
目的是轻松更改容器,自动更改所有视图。
必须有办法做到这一点,我只是找不到满足这种需求的好的和干净的解决方案。任何帮助将非常感激。
谢谢
angularjs - Angular2查看子未定义错误
我正在尝试一个非常简单的示例,即通过@ViewChild()装饰器从父组件调用子组件内部的childMethod。不幸的是,ViewChild 变量始终未定义。
子组件
父组件
父组件html
调用 click 方法时出现错误
任何澄清都会有所帮助。
angular - 如何使用@ViewChildren 获取对未知子元素的引用
我正在使用第三方库,可以让我创建标签集。这是我用来创建简单标签集的代码
我已经连接了一个事件,它会告诉我何时选择了一个选项卡,我想在和上调用该loadData()
方法。<vcd-firewall-tab>
<vcd-dhcp-tab>
这clrTabsCurrentTabContentChanged
将为我提供对clr-tab-content
所选内容的引用,但我想访问它的第一个孩子并调用loadData()
以实现延迟加载。
我想我可以使用@QueryChildren
注释,除了我必须指定要查询的元素的类型。问题是在这种情况下,我不知道类型,它可能是<vcd-firewall-tab>
,<vcd-dhcp-tab>
或者我们拥有的许多其他选项卡,我不想在每次添加新选项卡时添加自定义代码。
我希望能够从我的事件处理程序中做这样的事情(但这不存在
我愿意接受任何建议,我想也许我可以将标签的索引与类似的东西相匹配@QueryChildren('clr-tab-content > *')
,假设每个标签下只有一个孩子。
angular - How to create @ViewChild temporary variable in a method in Angular 2?
I', trying to add a html control dynamically to div and after creating the control I would like to perform operations on it by creating viewchild
able to create in class but in a method after generating the control cannot initialize this
Any clue on creating ViewChild element locally?
angular - viewchild 输入属性在需要时未更新角度 2
我一直在寻找这种行为的某种原因,子组件“Param”中的 Input() 属性的值没有在正确的时间更新,我需要使用更新的值作为参数调用服务。通过单击“更新子值”按钮,首先显示 LOG B(带有旧值),然后显示 LOG A(LOG A 它位于属性的设置器中)。
父组件
子组件
期望的行为是首先更新参数的值,然后将该值用作服务的参数。LOG A 然后 LOG B
javascript - Angular 2,与谷歌地图事件一起使用的子组件丢失上下文
当我在组件中使用组件时,我有一个案例。通过@ViewChild 访问子组件的属性,我得到子组件中的方法的未定义。
当'map event listener'调用'menu.open(e);'时从这个类 上下文发生变化,在子组件内部,子组件的方法不可用。调用即'this.draw()' 方法。
如何正确实现 google 的 map 'rightclick' 事件监听器(可能带有 'bind')来使用我孩子的组件方法。谢谢