问题标签 [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.

0 投票
6 回答
73550 浏览

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

0 投票
17 回答
149737 浏览

angular - *ngIf 中的@ViewChild

问题

@ViewChild显示模板中的相应元素后最优雅的获取方式是什么?

下面是一个例子。Plunker 也可用

组件.模板.html:

组件.component.ts:

我有一个默认隐藏其内容的组件。当有人调用show()方法时,它变得可见。但是,在 Angular 2 更改检测完成之前,我无法参考viewContainerRef. 我通常将所有必需的操作包装成setTimeout(()=>{},1)如上所示。有没有更正确的方法?

我知道有一个选项ngAfterViewChecked,但它会导致太多无用的调用。

答案(Plunker)

0 投票
1 回答
264 浏览

inheritance - dart:用查询替换 ViewChildren

我知道我可以使用@ViewChildren注释来访问 DOM 元素。但是,在这种特殊情况下,entries属性是在祖先组件 ( MenuComp) 中定义的。于是我尝试使用该queries属性,如下:

entries仍为空。我是否queries以错误的方式使用该物业?

0 投票
1 回答
228 浏览

angular - 在不使用 @ViewChild 注释的情况下访问组件

如何在不使用 @ViewChild 或 @ViewChildren 注释的情况下访问子组件?例如:

0 投票
1 回答
563 浏览

angular - Angular2 动态组件

我对Angular2很陌生,我还没有找到解决我正在尝试做的事情的方法。我将尝试用下面的例子来解释。

假设我们有一个父组件A可以包含子组件XY。这可以使用 viewchild 轻松解决。

但是,如果我们想在不重复代码的情况下动态加载子组件怎么办?

真实例子:

  • 组件 U :由用户调用的组件,它调用组件 A 并根据用户的选择注入子组件(X 或 Y)。
  • 组件 A:网格容器,可以是表格、面板或其他任何东西。
  • 组件 X:包含服务 S1 的行的视图
  • 组件 Y:包含服务 S2 行的视图

目的是轻松更改容器,自动更改所有视图。

必须有办法做到这一点,我只是找不到满足这种需求的好的和干净的解决方案。任何帮助将非常感激。

谢谢

0 投票
1 回答
4688 浏览

angularjs - Angular2查看子未定义错误

我正在尝试一个非常简单的示例,即通过@ViewChild()装饰器从父组件调用子组件内部的childMethod。不幸的是,ViewChild 变量始终未定义。

子组件

父组件

父组件html

调用 click 方法时出现错误

任何澄清都会有所帮助。

0 投票
2 回答
1281 浏览

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 > *'),假设每个标签下只有一个孩子。

0 投票
1 回答
11897 浏览

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?

0 投票
3 回答
12573 浏览

angular - viewchild 输入属性在需要时未更新角度 2

我一直在寻找这种行为的某种原因,子组件“Param”中的 Input() 属性的值没有在正确的时间更新,我需要使用更新的值作为参数调用服务。通过单击“更新子值”按钮,首先显示 LOG B(带有旧值),然后显示 LOG A(LOG A 它位于属性的设置器中)。

父组件

子组件

期望的行为是首先更新参数的值,然后将该值用作服务的参数。LOG A 然后 LOG B

0 投票
1 回答
649 浏览

javascript - Angular 2,与谷歌地图事件一起使用的子组件丢失上下文

当我在组件中使用组件时,我有一个案例。通过@ViewChild 访问子组件的属性,我得到子组件中的方法的未定义。

当'map event listener'调用'menu.open(e);'时从这个类 上下文发生变化,在子组件内部,子组件的方法不可用。调用即'this.draw()' 方法。

如何正确实现 google 的 map 'rightclick' 事件监听器(可能带有 'bind')来使用我孩子的组件方法。谢谢