Javascript 迭代子对象的角度包装器组件

Javascript 迭代子对象的角度包装器组件,javascript,angular,wrapper,children,Javascript,Angular,Wrapper,Children,我试图在Angular中创建一个包装器组件,该组件可以接收任意数量的子项,然后逐个包装每个项。最好是完全动态的,不绑定任何额外数据 app wrapper.component应该是这样工作的(只处理包装器的逻辑): 并使用应用程序包装器(其中为项目处理逻辑): ... app wrapper.component不是这样工作的,抛出 错误: 错误:模板分析错误:无法绑定到“选择”,因为它不是 “ng内容”的已知属性 请注意:div.wrapper和div.child-wrapper不能分开

我试图在Angular中创建一个包装器组件,该组件可以接收任意数量的子项,然后逐个包装每个项。最好是完全动态的,不绑定任何额外数据

app wrapper.component应该是这样工作的(只处理包装器的逻辑):


并使用应用程序包装器(其中为项目处理逻辑):


...
app wrapper.component不是这样工作的,抛出 错误:

错误:模板分析错误:无法绑定到“选择”,因为它不是 “ng内容”的已知属性


请注意:div.wrapperdiv.child-wrapper不能分开。

似乎有几种可能做到这一点

1/您可以将它们制成组件:

app-wrapper.component:

<div class="wrapper">
  <div 
    class="child-wrapper"
    *ngFor="let child of children"
   >
    <app-item [item]="child"></app-item>
  </div>
</div>
  <app-wrapper>
    <div child>element you want to put inside the "ng-content" </div>
 </app-wrapper>

并使用@Input创建ItemComponent以显示项目

2/您可以使用ngTemplateOutlet指令创建模板引用 app-wrapper.component:

<div class="wrapper">
   <div 
      class="child-wrapper"
      *ngFor="let child of children"
   >
    <ng-container *ngTemplateOutlet="test; context: { child: child }"></ng-container>
   </div>
</div>

<ng-template #test let-child="child">
<!-- here an item -->
</ng-template>

ng内容用于在元素内注入内容,如下所示:

在应用程序包装中:

<div class="wrapper">
      <ng-content select="[child]"></ng-content>
</div>

当您调用组件时:

<div class="wrapper">
  <div 
    class="child-wrapper"
    *ngFor="let child of children"
   >
    <app-item [item]="child"></app-item>
  </div>
</div>
  <app-wrapper>
    <div child>element you want to put inside the "ng-content" </div>
 </app-wrapper>

要放入“ng内容”中的元素

这样做似乎有几种可能性

1/您可以将它们制成组件:

app-wrapper.component:

<div class="wrapper">
  <div 
    class="child-wrapper"
    *ngFor="let child of children"
   >
    <app-item [item]="child"></app-item>
  </div>
</div>
  <app-wrapper>
    <div child>element you want to put inside the "ng-content" </div>
 </app-wrapper>

并使用@Input创建ItemComponent以显示项目

2/您可以使用ngTemplateOutlet指令创建模板引用 app-wrapper.component:

<div class="wrapper">
   <div 
      class="child-wrapper"
      *ngFor="let child of children"
   >
    <ng-container *ngTemplateOutlet="test; context: { child: child }"></ng-container>
   </div>
</div>

<ng-template #test let-child="child">
<!-- here an item -->
</ng-template>

ng内容用于在元素内注入内容,如下所示:

在应用程序包装中:

<div class="wrapper">
      <ng-content select="[child]"></ng-content>
</div>

当您调用组件时:

<div class="wrapper">
  <div 
    class="child-wrapper"
    *ngFor="let child of children"
   >
    <app-item [item]="child"></app-item>
  </div>
</div>
  <app-wrapper>
    <div child>element you want to put inside the "ng-content" </div>
 </app-wrapper>

要放入“ng内容”中的元素

问题是什么?继续尝试,你会明白的。我会看看动态组件注入。请为
app wrapper.component.ts
添加代码。看起来你错过了一个简单的问题,比如什么是问题?继续尝试,你会得到它的。我会看看动态组件注入。请为
app wrapper.component.ts
添加代码。好像你错过了一个像