【问题标题】:Ruby on Rails - SLIM - SCSS - inject ruby variableRuby on Rails - SLIM - SCSS - 注入 ruby​​ 变量
【发布时间】:2017-01-26 12:15:03
【问题描述】:

如何根据 ruby​​ 变量值设置 SCSS 变量?

以下代码适用于 CSS,但不适用于 SCSS:

- primaryColor = app.theme_variables['primary-color'];
= content_for(:after_head_script) do
  css:
   .primaryColor {
     color: #{primaryColor};
   }

如果我对 SCSS 做同样的事情:

- primaryColor = app.theme_variables['primary-color'];
= content_for(:after_head_script) do
  scss:
    $color = #{primaryColor}

    .primaryColor {
      color: $color;
    }

输出如下:

.primaryColor{color:primaryColor}

那么关于如何将变量注入 SCSS 有什么想法吗?

【问题讨论】:

  • 这只是一种预感,但您是否尝试过将插值括在双引号中?例如$color = "#{primaryColor}"
  • 是的,我做到了。同理。
  • 是的,这在 Slim 中似乎不起作用,这真是太糟糕了。至少你有 css: 变体可供回退。
  • 是的,我确实有 css,但主要问题是我想使用像 darken() 这样的 SCSS 函数。
  • 如果您将颜色设为动态值,从数据库中获取它并通过传递其 id 或循环输出它会怎样?

标签: ruby-on-rails sass slim-lang


【解决方案1】:

为您的 .scss 文件添加一个 .slim 扩展名,您的变量扩展应该可以工作(即“.scss.slim”)。

详情请见Asset Pipeline Preprocessing

【讨论】:

  • 这与我的问题无关。
【解决方案2】:

您可以在 scss 指令中使用标准 ERB 插值,不确定是否有更苗条的方法。

scss:
  $color = <%= primaryColor %>;

【讨论】:

    【解决方案3】:

    很遗憾,它不受支持。

    插值是:

    • 红宝石
    • javascript
    • CSS
    • 降价
    • 纺织品
    • rdoc

    这些都不是:

    • sass/scss
    • 咖啡

    如此处所述:https://github.com/slim-template/slim#embedded-engines-markdown-

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 1970-01-01
      • 1970-01-01
      • 2020-10-08
      • 2012-12-28
      • 2012-09-24
      • 2013-02-21
      • 1970-01-01
      • 2013-07-05
      相关资源
      最近更新 更多