在速度模板中调用宏函数

2022-09-02 03:15:09

我正在尝试弄清楚如何从速度宏调用返回值并将其分配给变量

我的宏函数看起来像这样。它曾经在公共共享宏文件中

#macro(getBookListLink, $readingTrackerResult)
   $readingTrackerResult.getBookListLink()
#end

我需要将此宏的结果分配给另一个速度模板文件中的变量

我试过这样的东西

#set($book_list_link = #getBookListLink( $readingTrackerResult ))

但没有工作。我尝试使用#,$,并且在函数getBookListLink前面没有任何内容。但没有任何效果。我不能从宏返回吗?我的宏有问题?

但是,如果我在html文件中单独调用#getBookListLink($readingTrackerResult)。它的工作原理,我可以将结果打印到UI。但无法赋值到变量。


答案 1

宏不是函数;它们用于渲染输出。但是,如果您不介意丢失类型并将结果作为文本获取...

#set( $book_list_link = "#getBookListLink( $readingTrackerResult )" )

答案 2

要删除空格和空行,请使用多行注释 ():#* comment *#

#macro( myMacro $param )#*
  *#the_return_value#*
*##end

推荐