如何使用 Angular 在 ngStyle 中绑定数据
How to bind data in ngStyle using Angular
我正在尝试使用 Angular 8 绑定数据,但失败得很惨。我试过的方法之一如下:
<div class="speed" style="background-image: url('http://example.com/assets/images/meter.png')" [ngStyle]="{'--p':result.percentage}"></div>
和输出:
<div _ngcontent-kyh-c1="" class="speed" style="background-image: url('http://example.com/assets/images/meter.png');" ng-reflect-ng-style="[object Object]"></div>
我希望输出为:
<div _ngcontent-kyh-c1="" class="speed" style="background-image: url('http://example.com/assets/images/meter.png');--p:24;"></div>
仅供参考,{{result.percentage}}
给出输出 24
。
请忽略Angular 8.
生成的_ngcontent-kyh-c1=""
将其添加到您的 ts 组件中。它将为您的组件添加样式
import { DomSanitizer } from '@angular/platform-browser';
import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
@Component({
selector: 'my-component',
templateUrl: './my-component.html',
styleUrls: ['./my-component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class MyComponent {
@HostBinding('attr.style')
public get valueAsStyle(): any {
return this.sanitizer.bypassSecurityTrustStyle(`--p: ${this.result.percentage}`);
}
constructor(private sanitizer: DomSanitizer) {}
}
现在 html 您将拥有 ..... 所以 hostBinding 是修改主机组件的好方法
现在我可以在嵌套 html 中使用变量,只需使用颜色:var(--p) 会将我的文本更改为红色。这就是我假设你想要实现的目标
我正在尝试使用 Angular 8 绑定数据,但失败得很惨。我试过的方法之一如下:
<div class="speed" style="background-image: url('http://example.com/assets/images/meter.png')" [ngStyle]="{'--p':result.percentage}"></div>
和输出:
<div _ngcontent-kyh-c1="" class="speed" style="background-image: url('http://example.com/assets/images/meter.png');" ng-reflect-ng-style="[object Object]"></div>
我希望输出为:
<div _ngcontent-kyh-c1="" class="speed" style="background-image: url('http://example.com/assets/images/meter.png');--p:24;"></div>
仅供参考,{{result.percentage}}
给出输出 24
。
请忽略Angular 8.
生成的_ngcontent-kyh-c1=""
将其添加到您的 ts 组件中。它将为您的组件添加样式
import { DomSanitizer } from '@angular/platform-browser';
import { ChangeDetectionStrategy, Component, HostBinding } from '@angular/core';
@Component({
selector: 'my-component',
templateUrl: './my-component.html',
styleUrls: ['./my-component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class MyComponent {
@HostBinding('attr.style')
public get valueAsStyle(): any {
return this.sanitizer.bypassSecurityTrustStyle(`--p: ${this.result.percentage}`);
}
constructor(private sanitizer: DomSanitizer) {}
}
现在 html 您将拥有 ..... 所以 hostBinding 是修改主机组件的好方法
现在我可以在嵌套 html 中使用变量,只需使用颜色:var(--p) 会将我的文本更改为红色。这就是我假设你想要实现的目标