2017-10-02 22 views
0
私はPrimengの​​リストボックスを使用してい

と私のプロジェクトでは、NGX-ブートストラップのドロップダウンコンポーネントを取得コンポーネント内のコンポーネントに@ViewChild使用。リストボックスがngxドロップダウン内にあるように、これらのコンポーネントをプロジェクトで使用しました。未定義値

<!--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> 

テンプレート(#listbox)に変数を作成しました。私はtsでアクセスできます。だから私は@ViewChildを実行しようとしていましたが。私はいつも未定義になっています。私はすでにNgAfterViewInitで、まだViewChildには未定義値を取得し、それを慰める

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 

} 
} 

をメモします。テストの目的のために

は、私は、NGXのドロップダウンの外にprimengの​​リストボックスを移動しようと、それは価値があります。 ngxdropdownの中にリストボックスを置くと、viewChildは定義されません。私のアプリケーションのニーズに関しては、実際にngxの中にリストボックスを配置する必要があります。

+0

あなたのリストボックスには、私は私がviewchild使用してアクセスできるのと同じ方法のTSであることにアクセスするにはどうすればよいEmbeddedView – yurzui

+0

の内側に位置していますか? – ilovejavaAJ

+0

valueChangesまたはセッターhttps://stackoverflow.com/questions/46251282/angular-viewchild-fileinput-annotation-is-undefined/46251375#46251375 – yurzui

答えて

0

テンプレートに<!DOCTYPE html>を追加します。

<!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

これらの目的は何ですか? – ilovejavaAJ