在模板中处理条件内容的首选Lift方法是什么?

Bri*_*ent 4 scala lift

在模板中处理条件内容的首选Lift方法是什么?

作为一个具体的例子,让我们想象一下"添加到我的收藏夹"类型按钮的常见结构.如果不在您的收藏夹中,则可以单击按钮添加它.如果已经在您的收藏夹中,则有一个按钮可将其删除.像这样的东西:

<div class="lift:MySnippet">

  <!-- other stuff -->

  <div class="favorite">
    <form id="doFavorite" class="lift:MySnippet.favorite?form=post">
      <input type="submit" value="Add to Favorites" />
    </form>
    <form id="doUnfavorite" class="lift:MySnippet.unfavorite?form=post">
      <input type="submit" value="Remove from favorites" />
    </form>
  </div>

  <!-- other stuff -->

</div>
Run Code Online (Sandbox Code Playgroud)

我没有看到片段中的明显方式(通过绑定或CSS变换器)根据适当的"favited"状态有条件地保留一个表单与另一个表单.

来自Java/SpringMVC/JSP背景,这将通过一个简单的<c:choose>声明来解决,但是我花了很多时间试图解决这个问题,我只能假设我完全倒退了......

提前谢谢,提升大师!

Dyl*_*lan 6

我并不认为自己是电梯大师,但这里有两个对我来说合理的选择:

有一个片段,一个片段,DoOrUndoFavorite在该片段中,您将检查用户的收藏状态并呈现一个或另一个(if(favorited){...} else{...})表单.

要么

保持您的片段不变,并在每个片段的渲染代码中,如果该片段不应呈现,则返回a Nil作为NodeSeq绑定.