首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将叠加连接到动态元素

将叠加连接到动态元素
EN

Stack Overflow用户
提问于 2018-06-13 18:35:57
回答 1查看 3K关注 0票数 0

我想使用angular-cdk进行覆盖,使用*ngFor可以将其附加到动态创建的元素上。

这里是一个例子:https://stackblitz.com/edit/angular-z4a989,我想打开每个按钮的覆盖,但是覆盖应该附加到打开的覆盖上。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-13 18:45:36

可以在组件中定义属性:

代码语言:javascript
复制
triggerOrigin: any;

此属性将负责覆盖的cdkConnectedOverlayOrigin输入属性:

代码语言:javascript
复制
<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]="triggerOrigin" 
                                                              ^^^^^^^^^^^^^

然后创建如下所示的切换方法:

代码语言:javascript
复制
toggle(trigger: any) {
  this.triggerOrigin = trigger;
  this.isOpen = !this.isOpen
}

它以触发器实例作为参数。根据单击的按钮,我们将从模板传递它:

代码语言:javascript
复制
<button class="btn btn-primary" cdkOverlayOrigin #trigger="cdkOverlayOrigin" (click)="toggle(trigger)">Open overlay</button>
...
<div style="margin-top:100px">
  <button *ngFor="let btn of btns" cdkOverlayOrigin #trigger="cdkOverlayOrigin"
   (click)="toggle(trigger)">{{btn}}</button>
</div>

分叉Stackblitz示例上可以找到完整的示例

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50844056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档