2016-05-12 8 views
1

私はツリービューのコンポーネントを持っています。私が使用したクラスでangular2ビューへの検索

<ul class="dropdown"> 
    <li class="levels-list-item" *ngFor="let level of levelsList"> 
     <div class="flex justify-flex-start dropdown-item align-center"> 
      <i class="wrapper fa fa-play rotate-90" 
       [ngClass]="{'invisible': ! level.childs?.length}" 
       attr.data-id="{{level.id}}" 
       #dropdownTrigger></i> 
      <div class="dropdown-item-inner flex full-width align-center"> 
       <div class="name">{{level.title}}</div> 
       <div class="tools flex justify-flex-start"> 
        <a class="wrapper tool" title="Добавить уровень" 
         [routerLink]="['../LevelAdd', {parentId: level.parentId}]" 
         *ngIf="isPDO(level.type)"> 
         <i class="fa fa-plus"></i> 
        </a> 
        <a class="tool wrapper" title="Редактировать уровень" 
         [routerLink]="['../LevelEdit', {parentId: level.parentId, id: level.id}]"> 
         <i class="fa fa-pencil"></i> 
        </a> 
       </div> 
      </div> 
     </div> 
     <levels-list-item [childs]="level.childs"></levels-list-item> 
    </li> 
</ul> 

:elemsを検索するViewChilden使用をしようとした場合、結果は0

テンプレートであれば

@ViewChildren("dropdownTrigger") dropdownTriggerElms: QueryList<ElementRef>; 

Elemsは子供にだけ見つけました。

@ViewChildren()dropdownTriggerElms)の結果のみngAfterViewInit()または後に設定され、この

<levels-list-item [childs]="list | async"></levels-list-item> 

答えて

3

を使用して、それを呼び出した他のコンポーネント。 constructorからアクセスしようとすると、nullになります。

後に起こる変化は、私はそれを知っているdropdownTriggerElms.changes.subscribe(...)

ngAfterViewInit() { 
    this.dropdownTriggerElms.changes.subscribe(value => console.log('changes', value)); 
} 
+0

を使用しますが、それがnullではない – Illorian

+0

そのを助けていないため、クエリの長​​さは、その後、問題がどこか別の場所ですが、コードを見ずに言うのは難しい0 – Illorian

+1

です。あなたはプランナーを作ることができますか? –

関連する問題