【问题标题】:Use a component as element - Angular 8使用组件作为元素 - Angular 8
【发布时间】:2020-04-08 17:46:07
【问题描述】:

我想使用一个组件作为一个项目。
而不是使用:

<ul class='biblList'>
    <li *ngFor="let biblCit of biblCits">
        {{ biblCit }}
    </li>
</ul>

我想使用类似的东西:

<evt-bibliography-item *ngFor="let biblCit of biblCits">
    {{ biblCit }}
</evt-bibliography-item>

作为一个有角度的新手,我不知道如何弄清楚。

【问题讨论】:

标签: angular typescript angular8 angular-components


【解决方案1】:

您可以使用迭代器*ngFor 来遍历组件:

<ng-content *ngFor="let biblCit of biblCits">
  <evt-bibliography-item></evt-bibliography-item>
</ng-content>

【讨论】:

  • @downvoter 投反对票的理由是什么?改进我的回复真的很有帮助
  • evt-bibliography-item 不是已知元素
  • @Memmo 你好像还没有导入你的组件。
  • app.module 或其他地方?
  • 如果是独立组件,那么是的,导入到app.module.ts
【解决方案2】:

这里是working example

.ts

biblCits=['1','2','2','3','4','5']

.html

<div *ngFor="let biblCit of biblCits">
    <child-component [parentTimerCount]="biblCit">
    </child-component>
</div>

【讨论】:

    【解决方案3】:

    您可以在组件模板中使用&lt;ng-content&gt;&lt;/ng-content&gt;,这将从父模板投射模板

    参考书目组件模板

    <div>
    <ng-content></ng-content>
    </div>
    

    父母

    <app-bibliography *ngFor="let biblCit of biblCits">
            ? {{ biblCit }} 
    </app-bibliography>
    

    demo ?

    【讨论】:

    • @downvoter 投反对票的理由是什么?改进我的回复真的很有帮助
    • 对我来说这是正确的解决方案!我不得不在字里行间阅读,但最后我意识到这就是我要找的!
    • @Memmo ? 很高兴听到我的回答解决了您的问题,谢谢?
    【解决方案4】:

    您可以在 evt-bibliography-item 组件的模板中使用 &lt;ng-content&gt;&lt;/ng-content&gt; 来访问在您自己的组件标签之间传递的所有内容,在您的情况下是 {{ biblCit }} 的值

    @Component({
      selector: 'evt-bibliography-item',
        template: '<ng-content></ng-content>'
    })
    export class BibliographyItem {
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      相关资源
      最近更新 更多