我想在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>
感谢您的帮助
答案 0 :(得分:3)
您需要将类声明export class ExtendedStep
移到首次使用之上,否则将无法识别。 (只有在同一个文件中有多个类时)。
如果你移动
export class ExtendedStep {
title: string;
}
在import
的正下方,它应该有效。