表中的每一行都有一个itemId
。我自定义了一个列,使其具有以下内容...
<td>
...
<div *ngFor="let hour of calculateHours(itemId)">
<div class="amount" [ngStyle]="{'height': '5px', 'width': getWidth(hour)}"></div>
</div>
...
</td>
我的问题是,当我向hours
添加更多Item
时,表中的数据不会刷新。
我知道绑定到模板中的方法很不好,并且每次更改检测都会调用该方法,但是我想不出一种好方法来获取初始显示的数据并在{{1}时刷新数据}更改。我唯一可以得到小时的地方是每行都有hours
的地方。
所以我想itemId
可以很好地工作,但是我需要我的*ngFor="let hour of calculatedHours"
来计算...
有什么建议吗?谢谢!
答案 0 :(得分:0)
与其直接在页面上调用函数calculateHours,还不如直接调用它。最好让您的代码返回Observable类型的小时数。您可以订阅代码,或者如果可能的话,最好使用异步管道。
如果您能够将CalculateHours作为小时数返回。即输入observable,您可以按以下方式实现它...
<div *ngFor="let hour of hours | async">
<div class="amount" [ngStyle]="{'height': '5px', 'width': hour}"></div>
</div>
对小时的任何更改都将反映在页面上。