gpt4 book ai didi

angular - 如何从 cdkPortal 中的内容获取 ViewChild

转载 作者:行者123 更新时间:2023-12-04 01:17:25 26 4
gpt4 key购买 nike

我有几个带有“工具”的组件,在创建时将这些工具插入应用程序中预定义的“命名”位置,例如左/右/侧工具栏。他们使用 Angular CDK Portals 来做到这一点。它看起来像这样:

// component template here...

// then portions of UI for portals, like this:
<ng-template cdkPortal #leftToolbar>
<app-search-input #search (search)="onSearch($event)"></app-search-input>
</ng-template>

我的目标是以某种方式获取对放置在门户内的 app-search-input 组件的引用。

下面显示的不起作用,this.searchEl 始终是 undefined:

// component class
@ViewChild('search', {static: true}) searchEl: SearchInputComponent;

有什么想法吗,伙计们?

最佳答案

在呈现之前,您无法访问 ng-template 中的任何内容。

但是当您的 ViewChild 通过 setter 初始化时,您始终可以订阅该事件:

@ViewChild('search') set searchEl(value: any) {
if (value) {
// do smth
}
};

Stackblitz Example

关于angular - 如何从 cdkPortal 中的内容获取 ViewChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63121272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com