【问题标题】:create angular material theme dynamically动态创建角度材质主题
【发布时间】:2018-05-12 03:52:00
【问题描述】:

我正在寻找实现以下功能的最佳方法:

我有两个不同的项目 - app 和 app-admin。我需要允许管理员用户更改应用主题:深色/浅色主题、字体、主要颜色和强调色。

我只想编译 .scss 文件,创建一个缩小的 custom-theme.css 并将其包含在我的 index.html 的底部。 但我不确定要在服务器中编译哪些 .scss 文件以获取新的捆绑 css。

如果您有其他建议如何做到这一点... 谢谢

【问题讨论】:

  • 很抱歉,您的问题似乎与 SO 无关,顺便说一句,本指南应该对您有所帮助 material.angular.io/guide/theming
  • 是的,这个问题还不是很清楚。感谢您的回复。我试图了解如何在不重新构建整个项目的情况下设置新主题,只有 scss 文件,然后包含新的 custom-theme.css,但我不知道该怎么做
  • @Shaniqwa 你能在不构建的情况下提供一个新主题吗?
  • 是的,我现在将更新我的解决方案

标签: angular sass material-design angular-material2


【解决方案1】:

更新我的解决方案:

  1. 添加了一个带有表单的侧面板,以允许用户更改我希望他们更改的任何内容:字体、颜色、主题等(侧面板仅对管理员用户显示)
  2. 每次更改都会触发一个函数,该函数将所选值作为 字符串 插入到角度主题 scss 中。
  3. 使用执行此操作的任何客户端库编译 scss 字符串(或发布到您的服务器并在您需要时发布到那里)以获得新的角度主题 CSS。
  4. 通过向您的 HTML 添加样式节点来动态包含该主题(我一直删除前一个并添加更新的主题)
  5. 用户满意后,点击“保存更改”,将最终的 CSS 发布到服务器并存储。
  6. 加载应用时,在页面加载之前使用解析器获取主题

【讨论】: