@ViewChild и @ViewChildren всегда возвращают неопределенное значение, даже если не используется * ngIf - PullRequest
0 голосов
/ 25 мая 2018

У меня проблемы со ссылкой на дочерний компонент в более крупном проекте, поэтому я добавил их в проект только для проверки работоспособности.

В любом случае @ViewChild AND @ViewChildren ВСЕГДА возвращают неопределенное значение.Что мне нужно, чтобы получить положение и размеры дочернего элемента ...

Что я могу сделать, чтобы попытаться решить эту проблему?

Компоненты экспортируются через модуль ...

Используется так:

<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
  });
}

Есть ли другой способ получения дочернего элемента, чтобы я мог работать с его положением и размерами?

...