Angular2:ContentChildren + QueryList错误

时间:2016-11-14 15:55:02

标签: angular

我想在Angular2中使用@ContentChildren在向导中导航。 但是当我使用它时,我有这个错误:“zone.js?fad3:158 Uncaught Error:无法为”ExtendedWizard“的属性”steps“构建查询,因为未定义查询选择器。”

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>

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

您需要将类声明export class ExtendedStep移到首次使用之上,否则将无法识别。 (只有在同一个文件中有多个类时)。

如果你移动

export class ExtendedStep {
    title: string;
}

import的正下方,它应该有效。