2017-10-02 2 views
0

J'utilise la Listbox de Primeng et les composants déroulants de ngx-bootstrap dans mon projet. J'ai utilisé ces composants dans mon projet de manière à ce que Listbox se trouve dans la liste déroulante ngx. J'ai créé une variable dans le modèle (#listbox) afin que je puisse y accéder dans mes ts. Donc j'essayais d'exécuter @ViewChild mais. Je deviens toujours indéfini.Utilisation de @ViewChild sur un composant à l'intérieur d'un composant pour obtenir une valeur indéfinie

export class MyComponent implements OnInit, AfterViewInit{ 

@ViewChild('listbox') mylist: Listbox; 


ngOnInit(){ 
    console.log(this.mylist); // ==> getting undefined value 
} 

ngAfterViewInit(){ 
    console.log(this.mylist); // ==> still getting undefined value 

} 
} 

Prenez note que je console déjà dans NgAfterViewInit et encore obtenir une valeur non définie pour le ViewChild. Pour tester, j'ai essayé de déplacer la liste de primeng hors de la liste déroulante ngx et il a une valeur. BUt lorsque j'essaie de placer la listbox dans le ngxdropdown, le viewChild n'est pas défini. En ce qui concerne mes besoins d'application, j'ai vraiment besoin de placer la listbox dans le ngx.

+0

Votre listbox est situé à l'intérieur EmbeddedView – yurzui

+0

Comment puis-je accéder qu'en ts de la même manière que je peux accéder à l'aide viewchild? – ilovejavaAJ

+0

Essayez d'utiliser ViewChildren avec valueChanges ou setter https://stackoverflow.com/questions/46251282/angular-viewchild-fileinput-annotation-is-undefined/46251375#46251375 – yurzui

Répondre

0

Ajouter <!DOCTYPE html> à votre modèle:

<!DOCTYPE html> 
<!--this is a ngx dropdown--> 
<ul *dropdownMenu class="dropdown-menu" role="menu" > 
    <div class="well well-dropdown">Customize Grid</div> 

     <!-- this is a primeng listbox --> 
     <p-listbox #listbox [options]="persons" [filter]="false" [(ngModel)]="selectedPerson" [multiple]="true" [checkbox]="true" [metaKeySelection]="false" [style]="{'max-height':'150px'}">    
     </p-listbox> 

</ul> 
+0

quel est le but de ceux-ci? – ilovejavaAJ