Angular2,从内部组件的模板中访问@ViewChildren引用?

时间:2017-01-11 13:03:43

标签: angular angular2-template

我正在使用PrimeNG DataTable组件,需要访问放置在列模板标记内的元素。

如果使用* ngFor手动生成表格(无需模板),一切正常,但切换到PrimeNG组件后,我的@ViewChildren列表始终为空。

@Component({
  ...
  template: `

      <p-dataTable [value]="myList">
          <p-column header="Header">
              <template let-item="rowData" let-index="rowIndex" pTemplate type="body">
                <my-component #myComponent [item]="item"></my-component>
              </template>
          </p-column>       
      </p-dataTable>
  `,
})
export class MyOtherComponent {

    @ViewChildren('myComponent') myComponents: QueryList<MyComponent>;
}

我尝试订阅QueryList更改,并在表行添加或删除后触发事件,但总是得到0长度&#39; _results&#39; array(使用* ngFor数组与组件数量正确同步)。

如果是DataTable

this.myComponents.changes.subscribe((changes) => console.log(changes));

总是返回:

  

QueryList {_dirty:false,_results:Array [0],_发送者:EventEmitter}

有没有办法让它发挥作用?

0 个答案:

没有答案