首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >slim-lang的if-else嵌套代码

slim-lang的if-else嵌套代码
EN

Stack Overflow用户
提问于 2012-12-20 15:38:31
回答 3查看 32.7K关注 0票数 21

我想根据超薄语言中的条件将css类分配给HTML的一部分

我正在做以下工作

代码语言:javascript
复制
- if current_user
  .title
- else
  .title_else

现在,我如何编写应该嵌套在上面的类中的HTML?是否需要在if条件和else条件中都编写超文本标记语言?

原因是应该嵌套在上面一个类中的HTML应该进一步向右。但如果我的意图更进一步,它包含在else条件下。现在我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-11 21:44:38

这里有一行代码:

代码语言:javascript
复制
.thing class=(current_user ? 'large-menu' : 'medium-menu')
  h4 Same content, different class
票数 34
EN

Stack Overflow用户

发布于 2015-01-10 05:07:10

由于您只是在两个属性之间切换,因此Tiago Franco's answer肯定足以满足您的需要。然而,还有另一种方法可以派上用场。

您可以使用capture将HTML呈现为一个局部变量,然后将该内容嵌入到您喜欢的任何控制结构中。因此,如果包装内容稍微复杂一些,您可以这样做:

代码语言:javascript
复制
- shared_content = capture do
  div This is displayed regardless of the wrapper
- if current_user
  | You're logged in!
  .title
    = shared_content
- else
  | You're not logged in!
  .title_else
    = shared_content

如果有可用的URL,我会经常使用它来包装链接中的内容:

代码语言:javascript
复制
- image = capture do
  img src=image_url
- if url.blank?
  = image
- else
  a href=url = image  
票数 18
EN

Stack Overflow用户

发布于 2013-01-11 19:28:31

1)是的,您需要将HTML写入创建的两个div中,因为您希望它是不同的。如果您不希望它不同,那么就不需要if语句了!

2)我真的不理解你的观点,但这段代码对我来说工作得很好:

代码语言:javascript
复制
- if true
  .title
    h4 True is true!
- else
  .title_else
    h4 True is not true!

这段代码显示了一个包含.title类的div和一个包含文本True is true!h4

编辑:好了,现在我明白你的意思了!这样做是不可能的,因为它不会呈现h4!

代码语言:javascript
复制
- if true
  .title
- else
  .title_else

    h4 Same content, different class

我建议你写一个帮助器,它允许你渲染部分参数,然后从两个条件中只渲染部分参数。这意味着您只需编写该部分并调用它两次。

代码语言:javascript
复制
- if true
  .title
    = render 'footer'
- else
  .title_else
    = render 'footer'
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13967324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档