我有一个典型的Scala Play 2.7.x,其中使用了不同的Twirl Scala Templates xyz.scala.html
,并重用了常见的main.scala.html
。现在,我想根据实际包含的模板来修改main.scala.html
的一些完整代码段。可以通过传递模板标识符并在main.scala.html
内进行if-then阶梯操作,但是这种方法无法很好地扩展,因为主体变得肿且难以维护。
例如,如果我有:
use-case1.scala.html
=> import snippet angular7-micro-frontend-comp1.scala.html into main.scala.html
use-case2.scala.html
=> import snippet angular7-micro-frontend-comp2.scala.html into main.scala.html
这个想法是让Play视图重用现有的Angular 7组件,这些组件隔离了其中的JS,CSS依赖项。这个概念称为微前端,可以使用元素在Angular 7中实现,例如Build Micro-Frontends Using Angular Elements。基本上,一个“播放”视图将成为具有隔离的Angular 7组件的SPA。
对此“摘要”的一种可能的解决方案是使用HTML includes,但IMO最好在将HTML发送到浏览器之前使用Play来实现。