@ViewChild和@ViewChildren始终返回未定义,即使没有使用* ngIf

时间:2018-05-25 17:23:37

标签: angular angular5 viewchild

我在较大项目中引用子组件时遇到问题,所以我将这些组件放入项目中仅仅是为了我自己的健全性检查。

在任何情况下@ViewChild和@ViewChildren总是返回undefined。我需要的是获得子元素的位置和尺寸......

我可以做些什么来尝试解决这个问题?

组件通过模块导出......

在此类视图中使用

<app-parent>
    <app-child></app-child>
</app-parent>

儿童:

@Component({
  selector: 'app-child',
  template: `<div>Stuff</div>`,
  })
export class ChildComponent {
  constructor() { }
}

父:

@Component({
  selector: 'app-parent',
  template: `<div><ng-content></ng-content></div>`,
})
export class ParentComponent implements OnInit, AfterViewInit {

  @ViewChild(ChildComponent) child: any;
  @ViewChildren('app-child') childrenMethod: QueryList<ElementRef>;

  constructor() { }
  ngOnInit(): void {
    console.log(this.child); // returns undefined
  }
  ngAfterViewInit() {
    console.log(this.child);  // returns undefined
    this.childrenMethod.changes.subscribe(item => {
      console.log('??' + this.childrenMethod); // nothing happens
  });
}

是否有不同的方法来获取子元素,以便我可以使用它的位置和尺寸?

0 个答案:

没有答案