我有一种情况需要在 div 上动态设置“data-*”的值。我实际使用的代码是这个:
= tag('div', { class: 'agile-carousel',\
data: { carousel_list: url_for(format: :json) } }, true)
= "</div>".html_safe
这太可怕了。 rails 也会关闭 <div />
中的 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
最佳答案
您可以使用 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 的标签助手。通过使用它们,您重新引入了它们本应删除的所有标点符号。
关于ruby-on-rails - 设置数据-*属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644762/