简体   繁体   English

单击另一个后命名组件的调用方法

[英]Call method of named component after click on another

I have users cards (or list).我有用户卡(或列表)。 For users who have status='err' the error icon ( <tooltip-icon> ) should appear after user name (which is inside <span> ).对于status='err'的用户,错误图标( <tooltip-icon> )应该出现在用户名之后(在<span>内)。 Tooltip first shows icon and on click shows message (this works), but I also want to show this message when someone click on username.工具提示首先显示图标,然后单击显示消息(这有效),但我也想在有人单击用户名时显示此消息。

 // typescript part: showTooltip(tooltipMsg, user) { if(user.status=='err') { tooltipMsg.showMessage(); // here I have undefined } }
 <div class="users-cards"> <div *ngFor="let user of users" class="card"> <span (click)="showTooltip(tooltip, user)">{{ user.name }}</span> <tooltip-icon *ngIf="user.status=='err'" [label]="user.msg" #tooltip ></tooltip-icon> </div> </div>

The <tooltip-icon> has public method showMessage() and I want to call it when someone click on user name. <tooltip-icon>有公共方法showMessage()我想在有人点击用户名时调用它。 The problem is that when I click on <span> then inside method showTooltip the tooltipMsg==undefined allways.问题是,当我点击<span>然后在方法showTooltip中, tooltipMsg==undefined allways。 So how to get access to showMessage() after click on <span> ?那么如何在点击<span>后访问showMessage()呢?

When I do this当我这样做时

    <tooltip-icon 
      [show]="user.status=='err'"
      [label]="user.msg" 
      #tooltip
    ></tooltip-icon>

and implement show @Input param inside tooltip-icon component - then it just works.并在 tooltip-icon 组件中实现show @Input 参数 - 然后它就可以工作了。

However this is only not efficient workaround (because we create extra nodes in DOM) - is there a way to not drop *ngIf ?然而,这只是不是有效的解决方法(因为我们在 DOM 中创建了额外的节点) - 有没有办法不删除*ngIf

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM