超薄模板可选属性

时间:2018-08-02 07:27:51

标签: slim-lang

遇到以下情况

 - if video
    - if controls
      video controls="true" loop="true" muted="true" playsinline="true"  uk-video="autoplay: false"
        source src="#{rails_blob_path(media)}" type="video/mp4"
    - else
      video loop="true" muted="true" playsinline="true"  uk-video="autoplay: false"
        source src="#{rails_blob_path(media)}" type="video/mp4"

2个问题,

  1. 如何避免视频内容出现“ true”,浏览器不需要它们,只是苗条的东西
  2. 是否可以在视频代码中内联if并优雅地避免代码重复?

1 个答案:

答案 0 :(得分:0)

我相信这个示例可以回答您的两个问题:

- video = true
- controls = true

- if video
  video controls=controls loop=true muted=true playsinline=true uk-video="autoplay: false"
    source src="http://techslides.com/demos/sample-videos/small.mp4" type="video/mp4"
  1. 您可以提供布尔值而不是字符串。因此,例如loop="true"变为loop=true。有multiple ways可以通过Slim实现类似的结果,但是据我所知,您无法使用Slim的标准配置获得纯独立属性,而是使用空字符串作为值来呈现属性。因此,您有<element attribute="true">,想要<element attribute>,但会得到<element attribute="">
  2. 如果您改用布尔值而不是字符串,则可以免费“优雅地避免代码重复”。只需将controls的值设置为true或false(从您的代码示例来看,您似乎已经做到了)