0

我有一组 4 个模板文件,都带有.rythm扩展名,并且都位于同一个目录中。我们称它们为“Main.rythm”、“Child1.rythm”、“Child2.rythm”和“Helper.rythm”。此外,我还在home.template.dir渲染 Main 之前将 设置为该目录。

在 Helper 模板中,我只有一堆@defs 来执行一些基本的通用格式设置,这样我就不必回调我的 java 类或用不需要的逻辑来混淆实际模板。

主要看起来像这样:

@args {
    String aString,
    MyClass bunchOfData,
    String anotherString
    @//...
}
@import("Helper")
There's some formatting here, using @aString
There's some formatting using an @def in Helper, like @foo(anotherString)

@Child1(bunchOfData)

@Child2(bunchOfData)

Child1 和 Child2 彼此相似,看起来像这样:

@args MyClass bunchOfData
@import("Helper")
@{
    //Some preformatting stuff here
}
Make a lot of method calls on @bunchOfData, some of which will also use an @def or two in Helper

我的问题是@import("Helper")在线上的 Child1 出现错误:

Exception in thread "main" org.rythmengine.exception.CompileException: Syntax error on token "import", delete this token

Template: /path/to/templates/Child1.rythm

我已经尝试注释掉@import,但是我不能真正调用那些@defs,并且当我使用@Helper.foo(bunchOfData.getSomething()).

为了@def从 Child1 和 Child2 访问 Helper 中的这些 s,我需要做什么?

4

1 回答 1

1

你不应该使用@import,你应该使用@include@import就像importjava中的指令一样,为这个模板添加一个包来引用。 @include用于添加您可以在此模板中引用的其他模板。

于 2017-08-24T17:19:28.833 回答