如果由父模板调用,Rythm 无法 @import 模板
Rythm can't @import a template if invoked by a parent template
我有一组 4 个模板文件,都带有 .rythm
扩展名,并且都位于同一目录中。我们称它们为 "Main.rythm"、"Child1.rythm"、"Child2.rythm" 和 "Helper.rythm"。此外,我还在渲染 Main 之前将 home.template.dir
设置到此目录。
在 Helper 模板中,我只有一堆 @def
可以执行一些基本的通用格式设置,这样我就不必回拨我的 java class 或者用不需要的逻辑使实际模板混乱。
主要内容如下所示:
@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
,但后来我无法真正调用那些 @def
,并且在我使用 [= 时从 Rythm 得到 "Helper cannot be resolved" 的错误19=].
我需要做什么才能从 Child1 和 Child2 访问 Helper 中的这些 @def
?
您不应该使用 @import
,您应该使用 @include
。 @import
就像java中的import
指令一样,为这个模板添加一个包来引用。 @include
用于添加您可以在整个模板中引用的其他模板。
我有一组 4 个模板文件,都带有 .rythm
扩展名,并且都位于同一目录中。我们称它们为 "Main.rythm"、"Child1.rythm"、"Child2.rythm" 和 "Helper.rythm"。此外,我还在渲染 Main 之前将 home.template.dir
设置到此目录。
在 Helper 模板中,我只有一堆 @def
可以执行一些基本的通用格式设置,这样我就不必回拨我的 java class 或者用不需要的逻辑使实际模板混乱。
主要内容如下所示:
@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
,但后来我无法真正调用那些 @def
,并且在我使用 [= 时从 Rythm 得到 "Helper cannot be resolved" 的错误19=].
我需要做什么才能从 Child1 和 Child2 访问 Helper 中的这些 @def
?
您不应该使用 @import
,您应该使用 @include
。 @import
就像java中的import
指令一样,为这个模板添加一个包来引用。 @include
用于添加您可以在整个模板中引用的其他模板。