电梯中是否有办法将参数传递给片段?
我正在尝试为我的页面编写一个 pluraize 过滤器,根据有多少来显示单词“user”或“users”:
1 user
2 users
它在Django中的工作方式称为filters,它们的编写如下:
You have {{ num_messages }} message{{ num_messages|pluralize }}.
所以在这里你可以看到 pluralize 函数接受一个整数 num_messages 并输出和相应的字符串 - 空“”或“s”。
编辑:请注意,在这种情况下, num_messages 是一个实际的上下文变量,从视图传递给模板。
答案 0 :(得分:16)
您可以将参数传递给片段,是的。
class MySnippet {
def foo: NodeSeq = {
x = S.attr("myparam") openOr "myparam: Y U NO DEFINED!?"
<p>I got {x}!</p>
}
}
使用:
<lift:MySnippet.foo myparam="3"/>
或者,更新的Lift 2.3+风格:
<div class="lift:MySnippet.foo?myparam=3"/>
答案 1 :(得分:2)
<div id="main" class="cl1 cl2 lift:surround?with=default;at=content">
这也是带参数的代码段调用。
请参阅电梯文档:Lift docs, 3.4.1 Snippets in markup
为了表明内容是动态的,标记包含一个代码段调用。这通常采用class =“someclass someothercss lift:mysnippet”。如果类属性包含lift:xxx,则xxx将被解析为片段。代码段可能具有属性。属性被编码为URL参数...由? (问号),然后名称=价值,分开? (问号),; (分号)或&amp; (符号)。名称和值是URL编码。
答案 2 :(得分:2)
你不能这样做吗。
<div class="lift:MyClass">
You have <span class="num_messages"/>.
</div>
你的电梯代码看起来像是:
class MyClass {
def render = "num_messages" #> (num_messages + pluralize("message", num_messages))
}