Angular 的 Fullcalendar 5:事件中的组件

Fullcalendar 5 with Angular: Component inside Event

最近,我的公司从 AngularJS 切换到 Angular12。现在我使用 Fullcalendar 版本 5 而不是版本 3。我正在使用 Fullcalendar 的 Angular 实现: https://fullcalendar.io/docs/angular

显然,很多事情都不再有效了。请参阅下图以了解我想要实现的目标: 可以看到,事件里面有自定义的HTML。在那里渲染自定义 HTML 并不难,但是每个事件的右上角都有一个复制事件的按钮。当我使用 angularJS 时,它工作正常,因为我能够在 angularJS 控制器中调用函数。这不再有效。

我努力寻找在 angular 上下文中触发函数的合适解决方案,但未能在 Internet 上找到任何有用的东西。主要问题是我可以编写我想要的所有自定义 HTML,但内容不是由 angular 编译的(或者更确切地说,在 angular 范围之外),因此一个简单的 (click)="copyEvent(event)" 不会工作。我知道我可以使用 onclick="hackyFunction(eventId)" 来触发点击,但我宁愿在事件中使用真正的 angular 组件。您对如何解决这个问题有什么建议吗?

所以我找不到任何合适的方法将组件注入到事件中,所以我想到了这个 hacky 解决方案: 如您所见,我正在使用 EventRenderHook 来呈现我的自定义 HTML。为了能够访问 Angular 上下文,我使用了“window.autoswitch.functionName”。在这种情况下,Autoswitch 只是我在 window 上生成的一个变量,作为对组件的引用:(window as any).autoswitch = this; “this” 是组件。我在“ngOnInit()

中写了这个语句

功能就是这样添加的: