Angular 2+动态HTML模板

时间:2018-04-25 12:48:07

标签: javascript angular

遵循此处记录的内容:Dynamic Component Loader。 我想知道如何处理这个HeroJobAdComponent类中的数据:

import { Component, Input } from '@angular/core';

import { AdComponent }      from './ad.component';

@Component({
  template: `
    <div class="job-ad">
      <h4>{{data.headline}}</h4> 

      {{data.body}}
    </div>
  `
})
export class HeroJobAdComponent implements AdComponent {
  @Input() data: any;

}

如您所见,data是保存所接收数据的对象。我希望能够为我的HeroJobAdComponent类定义构造函数,但如果我这样做,则构造函数中的对象dataundefined。我尝试使用ngOnChange代替,一旦输入从未定义更改为已定义但应该执行,但它根本不执行。

有人可以首先解释为什么对象未定义,即使数据是在我的主要组件中定义的,并且这个问题的解决方法是什么?

这是我正在使用的构造函数:

constructor()
{
    this.values = this.data.values;
    this.spec_name = this.data.spec_name;
}

1 个答案:

答案 0 :(得分:2)

如果要在组件中接收数据时使用任何操作,可以使用setter

contains()