2016-11-14 57 views
2

我想在Angular2中使用@ContentChildren在嚮導中導航。 但是,當我使用它,我有這個錯誤:「zone.js?fad3:158未捕獲的錯誤:由於查詢選擇器未定義,無法爲」ExtendedWizard「的屬性」步驟「構造查詢。Angular2:ContentChildren + QueryList錯誤

wizard.component.ts

import { Component, ContentChildren, QueryList } from '@angular/core'; 

@Component({ 
    selector: 'extended-wizard', 
    template: ` 
      <ul> 
       <li *ngFor="let step of steps"> 
        {{step.title}} 
       </li> 
      </ul> 
      <ng-content></ng-content> 
    ` 
}) 
export class ExtendedWizard { 
    @ContentChildren(ExtendedStep) steps: QueryList<ExtendedStep>; 
} 

@Component({ 
    selector: 'extended-step', 
    template: ` 
     <fieldset> 
      {{title}} 
      <ng-content></ng-content> 
     </fieldset> 
    ` 
}) 
export class ExtendedStep { 
    title: string; 
} 

app.component.html

<extended-wizard> 
    <extended-step title="Step 1"></extended-step> 
    <extended-step title="Step 2"></extended-step> 
</extended-wizard> 

感謝您的幫助

回答

3

你需要移動類聲明export class ExtendedStep以上是首先使用,否則不會被識別。 (只有當你在同一個文件中有幾個類時)。

如果移動

export class ExtendedStep { 
    title: string; 
} 

略低於import S,它應該工作。

+0

天啊!謝謝 – di99er