javascript - angular2 在模板中显示计算数据

标签 javascript angular

我刚开始使用 Angular2 并遇到了以下问题。 模板(主要组件):

<span *ngFor="#data of dataset" >
    <data-widget [data]="data"></data-widget>
</span>

模板(小部件组件):

<div>{{someCompValue}}</div>

someCompValue 的值需要从 data 成员变量中的一组属性创建。

我应该在哪里注入(inject)代码来计算 someCompValue? 我尝试在 constructor() 中执行此操作,但那一刻 data 尚未分配 (=null)。

最佳答案

使用 ngOnInit ( ref ):

Initialize the directive/component after Angular initializes the data-bound input properties.

所以在组件中:

@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 的回答)。

关于javascript - angular2 在模板中显示计算数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36791701/

相关文章:

angular - 如何从组件更改片段

javascript - 在 *ngfor(Angular) 中插入具有特定样式属性的动态元素

javascript - DOM节点递归

javascript - 如何获取 "ui.draggable"事件中 "drop"的原始位置?

javascript - 如何重新加载当前页面?

jquery 数据表 : fetch next 25 rows from databse on next page button of jQuery datatable

angular - 在 Angular 6 中从控制台隐藏 IE 警告

c# - 如何在没有 WebBrowser 控件的情况下使用 "render"HTML

javascript - 使用 javascript 将文件保存在硬盘上

javascript - Angular 指令 - 模板和 com 更改