如何在 Slim 中有条件地换行或缩进
How to conditionally wrap or indent in Slim
这个问题重复的可能性很大,因为我不知道如何正确提问。我正在寻找在 Slim.
中有条件地换行或缩进的最佳实践
先举个直接ERB的例子
<% if some_condition? %>
<a href="#">
<% end %>
<span>foo</span>
<% if some_condition? %>
</a>
<% end %>
如果 condition?
returns 为真,您将得到 <a href="#"><span>foo</span></a>
。如果没有,你只会得到 <span>foo</span>
.
在 Slim 中,我不确定最合适的处理方式是什么。
也许假设我有一种渲染局部的方法...
# _span-foo.html.slim
span foo
# view.html.slim
- if some_condition?
a href="#"
= partial "_span-foo.html.slim"
- else
= partial "_span-foo.html.slim"
是的,您的方法可能是实现您的目标的最佳方式。
我找到了这个
并使用@craig-walker答案,您可以在一个文件中将其解决为
# view.html.slim
- span_content = capture do
span foo
- if some_condition?
a href="#"
= span_content
- else
= span_content
这个问题重复的可能性很大,因为我不知道如何正确提问。我正在寻找在 Slim.
中有条件地换行或缩进的最佳实践先举个直接ERB的例子
<% if some_condition? %>
<a href="#">
<% end %>
<span>foo</span>
<% if some_condition? %>
</a>
<% end %>
如果 condition?
returns 为真,您将得到 <a href="#"><span>foo</span></a>
。如果没有,你只会得到 <span>foo</span>
.
在 Slim 中,我不确定最合适的处理方式是什么。
也许假设我有一种渲染局部的方法...
# _span-foo.html.slim
span foo
# view.html.slim
- if some_condition?
a href="#"
= partial "_span-foo.html.slim"
- else
= partial "_span-foo.html.slim"
是的,您的方法可能是实现您的目标的最佳方式。
我找到了这个
并使用@craig-walker答案,您可以在一个文件中将其解决为
# view.html.slim
- span_content = capture do
span foo
- if some_condition?
a href="#"
= span_content
- else
= span_content