Cro模板作为对象

  • 本文关键字:对象 Cro raku cro
  • 更新时间 :
  • 英文 :


场景

我一直在使用Cro中的模板(记录在https://cro.services/docs/reference/cro-webapp-template),并很享受其中有潜艇。

我目前有一个"主"模板和一些报告,比如说报告1、报告2和报告3。

比方说,在report3中,我希望包含一个report1数组。

现在,让我们假设每个报告都有以下子:

  • init:一些Javascript初始化代码(无论使用多少个报告实例,都应该只包含一次(

  • HTML:报告的每个实例都应该包含一些HTML代码(有一些参数来区分它,但由于Javascript框架的限制,这些代码可能不包含任何<script><style>标记

  • 数据:每次包含时都必须重复的Javascript片段

目前,我在模板中的一个单独的子模板中有以上每一项。

问题

Redeclaration of symbol '&__TEMPLATE_SUB__report-initial'.

问题

虽然我可以将报告名称(例如"report1"(传递给主模板,但我缺少的是让主模板调用已传递的报告名称上的子模板的方法,因为可能涉及多个报告。

我尝试过的想法

理想的情况是,如果我能以某种方式创造一个";报告";类,并将模板类的实例传递到主报表中,然后将subs作为报表类上的方法调用。然而,我一直想不出一种方法来做到这一点。

我可以在这里看到三个可能的选项:

  • 我的困难可能是我没有思考"克罗之路";。如果有更好的方法来实现我想要做的事情,请告诉我
  • 可能有一种方法可以实现我想要的,而我只是无法理解文档(或者它可能丢失了(
  • 虽然可能性不大,但Cro的设计可能没有考虑到这种可能性

任何人都将不胜感激。

谢谢!

编辑:我认为一个宏可以有多个(命名的("身体";将解决问题。

看起来&__TEMPLATE_SUB__report1-initial是一个全局,当您将report1导入report3时,它会被重新声明。我可以建议尝试使用模板片段而不是整个模板吗?

我对你的问题的最初回答是"请你提供一个你的代码的最小可复制的例子,这样我们就可以更深入地了解上下文,并有一些我们可以尝试的东西";

我目前对你需要什么的理解是";使用raku风格的类&Cro模板设置中的对象(具有回调("-而实现这一点的标准方法(如对嵌套主题变量的关联访问(过于有限

就其本身而言,这不一定是raku/Cro的弱点,因为模板俚语的力量需要受到限制,以避免潜在的安全问题,而且与大多数模板系统一样,它比全面的编码语言更平淡无奇

我的猜测是,Cro模板部分可以组成web部分,并可以进出(真正的raku(根块,这取决于你如何组成块,可以处理你描述的报告数据结构-你尝试过吗?

如果这仍然不成立,有几种方法可以扩展选项,例如依赖注入和路由处理程序

最新更新