我有一个包含路径元素的SVG。我希望根据名为shirts
的数组的值来设置填充和描边。
<path class="st2" style="stroke-width:2.0;" [ngStyle]="myStyle(4)" d="M11.5,315....315.9z"/>
我的myStyle
功能是:
myStyle(p): Object {
return {
fill: this.shirts[p]
}
}
然后在我的组件中我有:
shirts: any = [];
setShirts(shirts) {
this.shirts = shirts;
}
然后我调用setShirts
来设置shirts
我的问题是,在显示SVG时,shirts
的值为空。稍后一小段时间setShirts
开始,shirts
被设置为颜色数组。
如果myStyle
设置了颜色,我如何让shirts
检查setShirts
?
答案 0 :(得分:1)
您可以在ngOnInit()中调用您的函数,或者我们可以尝试:
在HTML中:
<path *ngIf="isListLoaded" class="st2" style="stroke-width:2.0;" [ngStyle]="myStyle(4)" d="M11.5,315....315.9z"/>
在ts:
isListLoaded :any = false;
setShirts(shirts) {
this.shirts = shirts;
this.isListLoaded = true;
}
<强>更新强>:
在player.ts中导入ChangeDetectorRef
import { ChangeDetectorRef } from '@angular/core';
在player.ts中注入并实例化它
constructor(private ref: ChangeDetectorRef) {
}
最后
setShirts(shirts) {
this.shirts = shirts;
this.isListLoaded = true;
this.ref.detectChanges();
}