【发布时间】:2013-03-16 01:40:50
【问题描述】:
在模板中处理条件内容的首选 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>
我没有在 sn-p 中看到明显的方式(通过绑定或 CSS 转换器)根据适当的“收藏”状态有条件地保持一种形式与另一种形式。
来自 Java/SpringMVC/JSP 背景,这可以通过一个简单的<c:choose> 语句来解决,但是我花了尽可能多的时间来解决这个问题,我只能假设我正在解决这个问题完全倒退……
提前感谢电梯大师!
【问题讨论】:
-
按照 Dylan 所说的,但只是为了澄清。 Lift 的模板不包含任何逻辑,所有的逻辑都在 sn-ps 上。附带说明一下,对于此功能,我将使用 ajaxButton 而不是常规表单,您可以在 github 上查看定义。最后,如果您在Lift mailing list 上发布您的问题,您将获得更多答案@ 大多数 Lift 开发人员不会来 SO
-
@fmpwizard 我认为我对我的例子太过分了,而不是我真正问题的核心。在这种情况下,我真正追求的是“提升”方式 1. 将所有条件内容放在模板中,然后将其从 sn-p 或 2. 使用容器 html 元素并动态生成条件 html从sn-p。 #1 “感觉”对我来说是正确的,但我不想逆着 Lift 潮流! (另外,感谢您对邮件列表的提醒!)