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 也可用于多次渲染同一模板。
我正在构建一个日历组件,我想向用户提供以下内容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
我在
将它与 *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 也可用于多次渲染同一模板。