我想创建一个动态组件,使用@Input更改其背景颜色。但是在输入值中使用'#'给我一个模板解析错误。我该如何逃脱?
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'layout-panel',
template: `
<div [ngStyle]="{'background-color': bgColor ? bgColor: 'white'}">
</div>`,
styles: ['']
})
export class PanelComponent implements OnInit {
constructor() { }
@Input() bgColor: string;
ngOnInit() {
console.log(this.bgColor);
}
HMTL
<layout-panel [bgColor]="#000"></layout-panel>
答案 0 :(得分:1)
答案 1 :(得分:0)
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'layout-panel',
template: `
<div [ngStyle]="{'background-color': bgColor ? `#${bgColor}`: 'white'}">
</div>`,
styles: ['']
})
export class PanelComponent implements OnInit {
constructor() { }
@Input() bgColor: string;
ngOnInit() {
console.log(this.bgColor);
}
HTML
<layout-panel [bgColor]="'#000'"></layout-panel>
强文本
答案 2 :(得分:-1)
使用另一种格式传输颜色。例如:rgb(0,78,89)或rgba(90,89,23,0.4)。
OR
对于您的组件,我将在组件模板中保留“#”,而在输入中只能是“ 764598”。
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'layout-panel',
template: `
<div [ngStyle]="{'background-color': bgColor ? `#${bgColor}`: 'white'}">
</div>`,
styles: ['']
})
export class PanelComponent implements OnInit {
constructor() { }
@Input() bgColor: string;
ngOnInit() {
console.log(this.bgColor);
}
HMTL
<layout-panel [bgColor]="000"></layout-panel>