Angular / AngularDart 是否允许组件显示任意子组件?

Does Angular / AngularDart allow components to display arbitrary child components?

我正在构建一个日历组件,我想向用户提供以下内容API:

<fancy-calendar>
    <my-custom-day [day]="day"></my-custom-day>
</fancy-calendar>

其中 fancy-calendar 负责跟踪用户选择的当前月份。在内部,我想使用 *ngFor:

之类的东西来实现它
<div *ngFor="let day of daysInMonth">
    <ng-content [day]="day"></ng-content>
</div>

这似乎不起作用,因为 ng-content 无法发送任意值(在本例中为当天。)

我需要为此编写自定义指令吗?我怎样才能让用户能够在几天内使用他们自己的组件?

您可以使用动态组件加载来完成此操作。 https://github.com/dart-lang/angular/blob/7f6858bc48c1d2a454a4bc350077d67c277c6516/doc/faq/component-loading.md

我在

中回答了 TS 的类似问题

将它与 *ngFor 一起使用的最简单方法是构建一个辅助组件,您将类型或工厂传递给该组件以用于您希望它创建的组件。

另一种方法是使用 https://webdev.dartlang.org/api/angular/angular/NgTemplateOutlet-class 用户将内容作为模板传递的地方

<fancy-calendar>
    <ng-template> 
      <my-custom-day [day]="day"></my-custom-day>
    </ng-template>
</fancy-calendar>

fancy-calender 使用 NgTemplateOutlet 来渲染它。 使用 *ngFor https://webdev.dartlang.org/api/angular/angular/NgFor/ngForTemplate 也可用于多次渲染同一模板。