【问题标题】:Best way to share data between Javascript and Sass in Rails?在 Rails 中的 Javascript 和 Sass 之间共享数据的最佳方式?
【发布时间】:2017-02-23 01:18:10
【问题描述】:
在 Javascript 和 Sass 之间共享数据的最佳方式是什么?
我看到的两个选项是:
1) 使用 sass-json-vars 之类的东西可以将 @import JSON 文件导入 Sass,然后只需将 JSON 导入 Javascript。
2) 使用 .css.scss.erb 归档 Rails 资产管道,并在该 CSS 文件中使用 json Ruby gem 导入 JSON,然后只需将 JSON 导入 Javascript。
一个比另一个更好吗?还有更好的选择吗?
【问题讨论】:
标签:
javascript
css
ruby-on-rails
ruby
sass
【解决方案1】:
我不太确定我是否了解您想要共享的数据类型,或者为什么需要这样做。您是否考虑过在视图中使用内联 CSS 简单地设置动态属性?
假设您在一个页面上有一堆文章,并且每篇文章都有一个在数据库中设置的动态背景颜色,我认为最好的办法是在 SASS 中创建具有合理默认背景的文章类,然后在您的 erb 视图中覆盖它,如下所示:
SASS
.article {
background-color: #ddd;
}
ERB
<% @articles.each do |article| %>
<article class="article" style="background-color: <%= article.background_colour %>">
<%= article.title %>
</article>
<% end %>