Angular 2 - 如何有条件地向我的组件添加样式?

2023-12-07

我有一个带有样式表的组件,可以正确加载,如下所示:

@Component({
  selector: 'open-account',
  styleUrls: ['open-account.component.scss'],
  templateUrl: './open-account.component.html',
})

我想有条件地加载另一个样式表,如果字符串widget=true存在于网址中,但无论如何都无法工作。我努力了:

var stylesArr = ['open-account.component.scss'];
if (window.location.href.indexOf('widget=true') > -1) stylesArr.push('open-account-widget-styles.component.scss');

@Component({
  selector: 'open-account',
  styleUrls: stylesArr,
  templateUrl: './open-account.component.html',
})

and

var stylesArr = ['./open-account.component.scss'];
if (window.location.href.indexOf('widget=true') > -1) stylesArr.push('./open-account-widget-styles.component.scss');

@Component({
  selector: 'open-account',
  styleUrls: stylesArr,
  templateUrl: './open-account.component.html',
})

and

@Component({
  selector: 'open-account',
  styleUrls: ['open-account.component.scss', 'open-account-widget-styles.component.scss'].filter(elem => {
    if (elem === 'open-account.component.scss') return true;
    if (elem === 'open-account-widget-styles.component.scss' && window.location.href.indexOf('widget=true') > -1) return true;
  }),
  templateUrl: './open-account.component.html',
})

在我的 html 顶部:

<style type="text/css" *ngIf="false">
(the 'false' would be a variable, but putting in false doesnt even stop the style from loading)
...
</style>

我该怎么做才能有条件地加载这样的附加样式表?我不知道还能尝试什么。


 import { Component, Inject } from '@angular/core';
 import { DOCUMENT } from '@angular/platform-browser';

 @Component({
 })

 export class SomeComponent {

    constructor (@Inject(DOCUMENT) private document) { }

        LightTheme() {
            this.document.getElementById('theme').setAttribute('href', 'light-theme.css');


        DarkTheme() {
            this.document.getElementById('theme').setAttribute('href', 'dark-theme.css');
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 2 - 如何有条件地向我的组件添加样式? 的相关文章

随机推荐

  • 动态与对象相同

    在 CLR via C 一书中提到 FCL类型对应的dynamic关键字是System Object 请澄清这一点 It s not从 C 的角度来看 这完全是一样的 但是在编译的代码中 声明为类型的变量dynamic通常 可能总是 与 C
  • 没有互联网连接的同步适配器

    我有一个工作正常的同步适配器 它不需要互联网连接 因为它需要将地址簿与另一个本地存储 我的应用程序 同步 当 Wifi 关闭并且设备没有任何互联网连接时 Android 会在 帐户和同步 设置活动中禁用同步 即使连接关闭 有没有办法让同步适
  • 从列表中删除重复项和原始项

    给定一个字符串列表 我想删除重复项和原始单词 例如 lst a b c c c d e e 输出应该删除重复项 所以像这样 a b d 我不需要保留订单 Use a collections Counter object 然后仅保留那些计数为
  • 关闭交互式 python 会话时结束非守护线程

    请考虑下面的代码 usr bin env python3 import threading import time class MyThread threading Thread def init self super init self
  • 在 Swift 中将 UIView 转换为 .png

    如何将 UIView 转换为图像 我找到了这个将 uiview 转换为 png 图像但我对 Objective C 不太熟悉 我尝试将其翻译成 Swift 但进展不太顺利 有什么帮助吗 UIGraphicsBeginImageContext
  • 如何将自定义数据加载到 keras Cyclegan 示例的 tfds 中?

    按照中的示例https keras io examples generative cyclegan 已加载预先存在的数据集以供实施 我正在尝试添加我的数据集 import tensorflow datasets as tfds data t
  • PyQt6:如何在 QImageReader 中设置分配限制?

    我正在将应用程序从 PyQt5 更新到 PyQt6 该应用程序使用非常大的图像文件 我已经更新了代码以使用 PyQt6 但是 当我运行 Python 脚本时 我现在收到错误 QImageIOHandler 拒绝图像 因为它超出了当前分配 限
  • 如何在laravel中使用createMany方法插入多条记录

    我想使用 createMany 创建多记录 如何在没有数据复制的情况下将数组插入到此方法 public function update Request request Question question options request gt
  • 将嵌入引号的 csv 文件读取到 R 中

    我必须使用如下所示的 csv 文件 IDEA ID IDEA TITLE VOTE VALUE 56144 Net Present Value PLUS NPV 1 56144 Net Present Value PLUS NPV 1 如果
  • cakephp 表单验证

    有谁知道 cakePHP 中的表单是否有 VALIDATE 函数并查看错误数组 我检查了文档 但我发现的唯一东西是 SAVE 功能 我只需要知道我发送的数据是否有效并手动检查错误 Try this this gt ModelName gt
  • 在函数调用的同一行获取哈希键/值

    这是重现问题的代码 sub hello return h gt 1 n gt 1 print join values hello 我收到错误 arg 1 到值的类型必须是散列 不是子程序入口 在 第 4 行 靠近 执行 由于中止 到编译错误
  • MVVM:绑定一个 ViewModel,它将构造函数参数传递给 UserControl

    我的 WPF 应用程序有一个 MainWindow 其中包含一个名为 Tvshow GridView 的用户控件 主窗口
  • 多维 std::array [重复]

    这个问题在这里已经有答案了 在C 中 如何创建多维std array 我试过这个 std array
  • 如何创建“动态”WHERE 子句?

    第一 谢谢 我完成了我的另一个项目 并得到了很大的惊喜 现在一切都按预期进行 感谢一些有帮助的思想家 所以我开始下一个项目 我想要得到这样的东西 SELECT FROM tablename WHERE field1 content AND
  • 通过传递输出迭代器从函数填充 std::[container]

    我想通过传递输出迭代器从函数内部填充容器 因为据我所知 这是最有效的方法 例如 template
  • SDL 事件处理不起作用

    我目前正在通过阅读 Lazy foo 教程来学习 SDL 我在 Linux 上使用代码块 13 12 我无法使事件处理正常工作 我基本上是在尝试显示图像 效果很好 但无论我单击关闭按钮多少次 它都不会关闭 Code include
  • 比较向量值:1 个元素与所有其他元素

    我想知道如何将向量的 1 个元素与另一个向量中的所有元素进行比较 举个例子 假设 x lt c 1 10 y lt c 10 11 12 13 14 1 7 现在我可以逐个比较元素 x y 1 FALSE FALSE FALSE FALSE
  • 计算集合列表中所有组合的交集

    我有一套集合 我想找到仅在每个集合组合的交集中找到的项目数 我基本上想做与在维恩图中创建数字相同的事情 一个基本的例子可能会更清楚 a set 1 2 5 10 12 b set 1 2 6 9 12 15 c set 1 2 7 8 15
  • 如何分割 Tensorflow 数据集?

    我有一个基于一个 tfrecord 文件的张量流数据集 如何将数据集拆分为测试数据集和训练数据集 例如 70 训练 30 测试 Edit 我的张量流版本 1 8 我已经检查过 没有可能的重复项中提到的 split v 函数 我也在使用 tf
  • Angular 2 - 如何有条件地向我的组件添加样式?

    我有一个带有样式表的组件 可以正确加载 如下所示 Component selector open account styleUrls open account component scss templateUrl open account