【问题标题】:Slim templates optional attriutesSlim 模板可选属性
【发布时间】:2018-08-02 07:27:50
【问题描述】:

得到以下案例

 - 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 并优雅地避免代码重复?

【问题讨论】:

    标签: slim-lang


    【解决方案1】:

    我相信这个例子回答了你的两个问题:

    - 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(从您的代码示例来看,您似乎已经这样做了)

    【讨论】:

    • 你的意思是controls=false?您能否编辑您的问题并分享您如何为 videocontrols 变量赋值?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多