本文介绍了我如何有条件地将一些HAML内容包装在标签中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何使用条件决定是否在HAML中输出周围标签?

   -  if i_should_link 
%a {:href => url}
.foo
.block
.of
.code
- else
.foo
.block
.of
.code


解决方案



foo.html.haml

   -  if i_should_link 
%a {:href => url}
=渲染'bar'
- else
=渲染'bar'

_bar.html.haml

  .foo 
.block
.of
.code

编辑:或你可以使用内容,我想这样会更好,因为它保留在同一个文件中。

   -  if i_should_link 
%a {:href => url}
= yield:foobar
- else
= yield:foobar

- content_for:foobar do
.foo
.block
.of
.code


How can I use a condition to decide whether to output a surrounding tag in HAML? I'm trying to create the DRY version of the code below.

- if i_should_link 
  %a{:href => url}
   .foo
     .block
       .of  
         .code
- else
  .foo
    .block
      .of  
        .code
解决方案

You could use a partial.

foo.html.haml

- if i_should_link
  %a{:href => url}
    = render 'bar'
- else
  = render 'bar'

_bar.html.haml

.foo
  .block
    .of
      .code

Edit: Or you could use content for, I guess this is better because it keeps it all in the same file.

- if i_should_link
  %a{:href => url}
    = yield :foobar
- else
  = yield :foobar

- content_for :foobar do
  .foo
    .block
      .of
        .code

这篇关于我如何有条件地将一些HAML内容包装在标签中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 08:50