如何在 Angular 2+ 中将值从 ts 文件传递​​到同一组件中的 scss 文件?

Posted

技术标签:

【中文标题】如何在 Angular 2+ 中将值从 ts 文件传递​​到同一组件中的 scss 文件?【英文标题】:How to pass value from ts file to scss file in same component in angular 2+? 【发布时间】:2018-08-29 01:44:39 【问题描述】:

这是我的组件

export class myComponent implements onInit 

private outageCount;

ngOnInit()

    ....subscribe((data) => 
    this.outageCount = Object.keys(data).length;

)

我需要在CONTENT之前将outageCount传递给我的css

:host ::ng-deep app-settings-panel 
    &:before
        //content:"4";
        content:attr(outageCount);
        background: #941313;
        position: absolute;
        top: 3px;
        left: 22px;
        border-radius: 50%;
        height: 13px;
        width: 13px;
        border: 1px solid #ffffff;
        color: white;
        font-size: 8px;
        text-align: center;
        line-height: 13px;
    

如何将 outageCount 值从我的组件传递给 css :before content.

任何建议将不胜感激!

【问题讨论】:

为什么不使用 ngClass 或 ngStyle 来设置基于 typescript 值的属性 @IzzoObella 我必须在 :host ::ng-deep app-settings-panel &:before 中更改它。我该如何使用 ngStyle? 可能是/deep/ 帮助你。在类名前添加/deep/ 【参考方案1】:

我在我的 html 中将其作为属性传递,如下所示

 [attr.outage-count]="outageCount"

我的css,我是这样更新的

   :host ::ng-deep app-settings-panel 
        &:before
            content: attr(outage-count);
            ......
        
    

这对我有用!感谢所有尝试帮助我的人!

【讨论】:

你能帮我解决这个问题吗:***.com/questions/65106757/… 我想用同样的方法改变光标值。但我得到的错误是“attr()”只能与内容一起使用。你能帮帮我吗?【参考方案2】:

尝试使用:

document.documentElement.style.setProperty('--contentvalue', this.outageCount);

css

:root 
    --contentvalue: 4;


:host ::ng-deep app-settings-panel 
    &:before
        //content:"4";
        content:attr(--contentvalue);
        background: #941313;
        position: absolute;
        top: 3px;
        left: 22px;
        border-radius: 50%;
        height: 13px;
        width: 13px;
        border: 1px solid #ffffff;
        color: white;
        font-size: 8px;
        text-align: center;
        line-height: 13px;
    

【讨论】:

非常感谢这个。我找到了其他方法。让我更新! @RamyaS 你能告诉我们它对你有用的另一种方式吗?

以上是关于如何在 Angular 2+ 中将值从 ts 文件传递​​到同一组件中的 scss 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Angular - 将值从 HTML 传递到组件不起作用

如何在component.ts,angular2中将数据从一个函数传递到另一个函数

如何使用 Angular 2 在单个 ts 文件中编写 2 个表单验证?

如何将值从模板传递到 ts 函数

将数据传递给文件 child.component.ts 文件而不是子模板

如何从.net core 2.1 Angular 6模板中的非相对路径导入ts和scss文件