Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
347 views
in Technique[技术] by (71.8m points)

html - How can I conditionally wrap some HAML content in a tag?

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
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

57.0k users

...