【问题标题】:assign angular theme classname with a variable用变量分配角度主题类名
【发布时间】:2019-07-26 09:24:49
【问题描述】:

我有 4 个主题允许用户为我的 Angular 应用程序选择。然后我想将对应于该主题的字符串分配给包含应用程序的主 div。我可以通过更改手动完成

<div class="dark-theme"> or
<div class="default-theme"> etc.

我想要做的是从我从应用程序设置中提取的变量中设置主题的类名。例如 (component.ts)

this.theme = this.settings.theme

(组件.html)

<div class={{theme}}>

我尝试了 [ngClass]、[className]、{{theme}}、'{{theme}}' 和许多其他变体,但没有任何效果。我知道我将正确的主题名称传递给 html,因为我也可以在 \p> 元素中显示它。我所做的所有阅读都提到在 ngClass 中使用条件。您不能直接从组件打字稿中字符串变量的内容/值分配字符串吗?

谢谢....

【问题讨论】:

  • &lt;div class="{{theme}}"&gt;(你缺少双引号)
  • 不,不会改变主题。如果我手动输入 class="dark-theme" 它可以工作。但是我的段落标签显示'“dark-theme”'作为变量值,所以我知道它进入了。
  • Check this little sample. 没有理由不工作。通过浏览源代码检查最终的 HTML(在大多数浏览器上为 Ctrl+U)
  • 正在将正确的主题添加到 html 中。但是当我改变课程时,它并没有改变主题。甚至尝试手动重新加载页面,主题仍然没有。
  • 如果最终的 HTML 是正确的,那么它不是 Angular 相关的。您的浏览器不知道类名是硬编码的还是来自变量。

标签: angular


【解决方案1】:
<div [ngClass]="theme"/>

试试这个

【讨论】:

    猜你喜欢
    • 2016-04-04
    • 1970-01-01
    • 2019-07-02
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多