我可以导出 Sass 变量并将它们导入 Angular Typescript 变量吗?

Posted

技术标签:

【中文标题】我可以导出 Sass 变量并将它们导入 Angular Typescript 变量吗?【英文标题】:Can I export Sass variables and import them into a Angular Typescript variables? 【发布时间】:2019-06-03 12:51:34 【问题描述】:

我一直在看这个。我现在有我的申请。我们在 scss 中定义了用于着色的变量。我正在尝试将变量导入 Typescript,以便将它们提交到服务器。

我的 Angular 组件中有一堆字体和颜色字符串,但我想将它们推送到用于设计的 scss 文件中。问题是我不知道如何获取颜色。

我看到有人在 javascript 中做类似的事情,但我目前无法在 Typescript 中重现它。

理想情况下,我想做:

文字:

:export  myVariable:#ffffff; 

NGTypescript:

import styles from "./styles.scss";

然后做一些类似于:

onPostRequest() let color = styles.myVariable; ... 

当我到达上面的导入行时,它会说:找不到模块'./icon-picker.component.scss'.ts(2307)

我在 React 之类的类似示例中看到了类似的示例,但我在将该概念移植到 Angular 时也遇到了问题。 https://github.com/css-modules/css-modules/issues/86 显示了我注意到的概念。这也是一个 Javascript 演练,似乎也有问题:https://til.hashrocket.com/posts/sxbrscjuqu-share-scss-variables-with-javascript

【问题讨论】:

您是否尝试过使用 [style] 或 [ngClass] 来创建样式绑定到您的 .ts。 ? 我遇到的问题不在于 UI,而是需要将颜色提交到服务器的不可避免的状态。因此,如果我使用类,我如何从类中获取 color 的值。现在我正在使用样式做:[style]="'color': myColorVar" 并在我的 TS 中有 myColorVar,但我认为颜色和任何面向 UI 的东西都应该抽象到 scss 文件中,以便于更新应用程序的一致性,而不是奇怪的小利基ui 颜色差异被忽略。 【参考方案1】:

您是否尝试将颜色定义为 src/styles.scss 中的变量,将它们与 CSS 选择器链接起来并在组件 html 文件中引用这些选择器?

例如:

$primary-color: #333;
$secondary-color: #777;
.primary-color 
   color: $primary-color;

.secondary-color 
   color: $secondary-color;

然后在你的 html 组件中:

<p class="primary-color">Text with primary color</p>
<p class="secondary-color">Text with secondary color</p>

为了您的兴趣,您还可以通过重命名 *.css 并更新组件 ts 文件中的 StyleUrls 引用来将组件 css 更改为 scss。

【讨论】:

我试图得到的问题是将颜色提交到服务器,所以我试图弄清楚如何将$primary-color 存储在 js 变量中以便将其提交到有效负载中。

以上是关于我可以导出 Sass 变量并将它们导入 Angular Typescript 变量吗?的主要内容,如果未能解决你的问题,请参考以下文章

将 json 数据作为 .scss 文件中的 sass 变量导入 Nuxt

如何避免 SASS 变量的多个 @imports?

全局SASS/SCSS变量在Vue项目中应用解决方案

如何从 Oracle 11g XE 导出“数据库”并将其导入 Oracle 10.2?

使用 numpy 在 Python 中处理 TIFF(导入、导出)

将sass变量导入gatsby组件