首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ContentChildren未填充Angular 5

ContentChildren未填充Angular 5
EN

Stack Overflow用户
提问于 2018-01-09 07:29:42
回答 1查看 531关注 0票数 1

我有一个可以包含多个PanePanes组件,我必须能够访问Panes组件中的各个Pane。为此,我使用了ContentChildren,但由于某些原因,它无法识别/注册Pane,即使它们正在呈现。

你能告诉我我哪里做错了吗?

窗格

代码语言:javascript
复制
@Component({
  selector: "panes",
  template: `
    <ng-content select="[pane]"></ng-content>
  `
})
export class Panes {
  @ContentChildren(Pane) panes: QueryList<Pane>;

  ngAfterContentInit() {
    console.log("Initial: ", this.panes.length);
    this.panes.changes.subscribe(changes => {
      console.log("After Changes: ", changes.length);
    });
  }
}

窗格

代码语言:javascript
复制
 @Directive({selector: 'pane'})
    export class Pane {
      @Input() id: string;
    }

标记

代码语言:javascript
复制
<panes>
  <div pane>
    1
  </div>
  <div pane>
    2
  </div>
  <div pane *ngIf="show">
    3
  </div>
</panes>
<button type="button" (click)="toggle()">Toggle</button>

Plnkr:https://plnkr.co/edit/rTVsFoPFu7uBOpweWXW4?p=preview

EN

回答 1

Stack Overflow用户

发布于 2018-11-26 19:10:00

我在这里登陆,因为我正面临着类似的问题,但我发现你的问题只是关于Pane指令中错误的选择器。

它应该是:

代码语言:javascript
复制
@Directive({selector: '[pane]'})
export class Pane

而不是:

代码语言:javascript
复制
@Directive({selector: 'pane'})
export class Pane

此处缺少方括号[]

下面是您的工作示例的stackblitz

https://stackblitz.com/edit/angular-stackoverflow48159514?embed=1&file=src/app/pane.directive.ts

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48159514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档