В Angular 7 ViewChild не определен при использовании в * ngIf - PullRequest
0 голосов
/ 07 мая 2019

При использовании ViewChild в директиве * ngIf, я получаю Button как неопределенный.но когда я проверил журналы, он показывает мне что-то вроде ниже

https://i.stack.imgur.com/mpb16.png

В моем случае, он все еще не работает.Может кто-нибудь помочь здесь?

HTML-код

<div *ngIf="someCondition()">
<div class="row top-container">
    <div class="col-md-6">
      <h1 class="text-center">Registered </h1>
    </div>

    <div class="col-md-6">
      <div class="pull-right header-buttons-container">
        <button #registerPartnerButton id="registerPartner" class="btn btn-primary" type="button"  (click)="registerUser()">Register</button>
      </div>
    </div>
  </div>
</div>

TS-код

registerButton: ElementRef;
@ViewChildren('registerPartnerButton') set someDummyName(content: ElementRef) {
    this.registerPartnerButton = content;
  };
constructor(changeDetector: ChangeDetectorRef) {}

Проблема: Когда-либо после применения вышеуказанных решений, я получаю registerPartnerButton как неопределенный.но когда я проверил журналы, он показывает мне что-то вроде ниже

https://i.stack.imgur.com/mpb16.png

Я ожидаю, что ViewChild не должен быть неопределенным.

1 Ответ

0 голосов
/ 10 мая 2019
Finally I fixed it by applying below solution:

registerButton: ElementRef;
@ViewChildren('registerPartnerButton') set setButton(content: QueryList<ElementRef>) 
  {
    if(content.length > 0) {
     this.registerButton = content.first;
     // do further actions
    }
  };
...