微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将函数作为参数传递给 ng-template Angular

如何解决将函数作为参数传递给 ng-template Angular

我有 4 个按钮,我希望它们在其中执行不同的操作,但它们在不同的图像中看起来都一样。所以我创建了一个 ng-template 来渲染它们。我的想法是将每个人要调用函数作为 ng-template 中的参数传递,但我找不到方法来做到这一点。

这是我的想法:

<ng-template #tempalte let-icon=icon let-action=action let-alt=alt>
  <div (click)="action()">
    <img src={{icon}} alt={{alt}}>
  </div>
</ng-template>

我正在尝试做的事情可能吗?或者是我的逻辑错误,我犯了一个错误

非常感谢!

解决方法

您完全可以通过提供上下文来做到这一点。

<ng-container *ngTemplateOutlet="tempalte;context:ctx"></ng-container>
<ng-container *ngTemplateOutlet="tempalte;context:ctx2"></ng-container>


<ng-template #tempalte let-icon="icon" let-action="action" let-alt="alt">
  <div (click)="action()">
    <img src={{icon}} alt={{alt}}>
    Button
  </div>
</ng-template>
export class AppComponent {
  ctx = { action: () => alert('button1') };
  ctx2 = { action: () => alert('button2') };

这是stackblitz demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。