代码之家  ›  专栏  ›  技术社区  ›  Francesco Belladonna

设置数据-*属性

  •  2
  • Francesco Belladonna  · 技术社区  · 13 年前

    我有一种情况,我需要在div上设置“data-*”的值。我实际使用的代码是这样的:

      = tag('div', { class: 'agile-carousel',\
                     data: { carousel_list: url_for(format: :json) } }, true)
      = "</div>".html_safe
    

    这太可怕了。此外,rails在 <div /> 时尚,chrome和其他浏览器肯定不喜欢(造成了一些灾难)。

    所以我的解决方案就是这样。我想问一下是否有其他方法可以做到这一点。

    更新1:

    我有一个小问题,这个代码:

    span class==I18n.locale == locale_used ? "inactive" : nil
      = link_to(I18n.t('locale_name', locale: locale_used),\
                url_for(locale: locale_used))
    

    如果我删除link_to,它会起作用。请注意,如果我插入以下内容 | text 它返回一个错误: syntax error, unexpected keyword_ensure, expecting $end

    1 回复  |  直到 13 年前
        1
  •  6
  •   user229044    13 年前

    您可以使用 content_tag 而不是 tag 生产 <div></div> 而不是 <div> ,但你不应该。

    您正在使用 Slim 所以 使用Slim :

    .agile-carouesel data-carousel_list=url_for(format: :json)
    

    输出:

    <div class="agile-carouesel" data-carousel_list="some URL"></div>
    

    Slim和HAML的全部意义在于,您可以使用这种极其简洁的语法来编写标记。您应该使用它,而不是在不需要Rails的标记助手时求助于它们。通过使用它们,您重新引入了它们应该删除的所有标点符号混乱。