我有以下的角2部分:角2動感的風格結合
import { Component, Inject, Input } from '@angular/core';
@Component({
selector: 'generic-component',
templateUrl: 'generic-component.component.html',
styleUrls : ['generic-component.component.css']
})
export class GenericComponentComponent{
@Input() backCol: string = "#F0F8FF";
@Input() divClass: string = "myClass";
...
}
與HTML模板:
<div class={{divClass}} [style.backgroundColor]="backCol">
This is a div
</div>
模板正確呈現與默認backCol十六進制顏色可變的股利,當應用程序啓動。
但我想將backCol變量字符串更改爲另一個十六進制顏色,可能是事件。
在父組件我有這樣的事情:
@Component({
template: `
<generic-component divClass={{myComp.divClass}} [style.backgroundCol]="myComp.backCol">
</generic-component>
`
})
export class ParentComp{
myComp = new GenericComponentComponent();
}
onColorChange(){
this.myComp.divClass = "mySecondClass";
this.myComp.backCol = "#A22B11";
}
但新的顏色並不渲染onColorChange()調用。所有其他屬性綁定(如divClass)都會更新並正確呈現。我究竟做錯了什麼?
什麼是myComp應該是?那麼'this.backCol =「#A22B11」'? –
它是GenericComponentComponent類的一個實例。我使用該實例將GenericComponentComponent呈現到父級的html模板中。 – ktsangop
也許'this.instance.backCol =「#A22B11」'然後呢?如果不是,請提供更多關於'myComp'是什麼的信息(代碼) –