Angular2 在模板中显示计算数据
angular2 displaying computed data in template
我刚刚开始使用Angular2并解决了以下问题。模板(主要组件):
<span *ngFor="#data of dataset" >
<data-widget [data]="data"></data-widget>
</span>
模板(小部件组件):
<div>{{someCompValue}}</div>
someCompValue 的值需要从数据成员变量中的属性集创建。
我应该在哪里注入代码来计算 someCompValue?我试图在 constructor() 中执行此操作,但那一刻数据尚未分配 (=null)。
使用ngOnInit
(ref):
在 Angular 初始化数据绑定输入属性后初始化指令/组件。
所以在组件中:
@Component(...)
export class DataWidget {
@Input data: Xxxx;
constructor() { ... }
ngOnInit() {
// this.data should be set and ready to use here
}
}
编辑:查看Günter Zöchbauer的答案,注意:如果数据在组件初始化时仅计算一次,请使用ngOnInit
;如果要在开始时计算数据并在每次输入更改时重新计算,请使用ngOnChanges
(根据Günter的答案)。
@Component({
selector: 'data-widget',
template`<div>{{someCompValue}}</div>`})
class DataWidget {
@Input() data;
ngOnChanges(change) {
this.someCompValue = doCalculationBasedOnData();
}
}
另请参阅OnChanges实时周期回调。
相关文章:
- JavaScript循环无法正确计算/显示结果
- 在Javascript中计算并显示具有2个税收百分比的现有总值
- 当我将子项从一个父项移动/复制到另一个父级时,如何重新计算显示
- 我有一个字段计算,如果结果低于 60,则需要显示最小值
- Chrome 开发工具:如何计算加载弹出窗口并将其显示在页面上所需的总时间
- 如何使用jQuery计算和显示font-awesome的评级
- Angular2 在模板中显示计算数据
- 如何在模态助推器中显示计算结果(JS)
- 如何计算一个函数在javascript中运行的次数?然后在页面上显示
- jquery计算的列表项未正确显示
- JQuery:如何计算要在容器中显示的行数
- 如何使用谷歌地图自动计算和显示机场的最近距离?使用jquery或javascript
- 计算文本字段的数量&在另一页中显示总数
- javascript/html获胜't显示计算结果
- 以 HTML 格式显示计算结果 (javascript)
- 程序不显示计算结果..只有零
- 我想通过javascript或jquery显示/计算周数
- 显示计算的文本框与十进制使用javascript
- SharePoint 列表,以编辑窗体显示计算字段
- 当用户点击提交时,如何在图表中显示计算结果