angular - 什么是内容(参考)内容:TemplateRef在角度?
问题描述
您好,我正盯着 Angular 工作,当我在我的 html 中添加一个带引导程序的模式时,我发现我需要发送我从未声明过的参数内容
<tbody *ngIf="!loading">
<tr
(click)="openModal(content,note)"
*ngFor="let note of notesAndCommentsContainer"
>
<td>{{ note.author }}</td>
<td>{{ note.preview }}</td>
<td>{{ note.property }}</td>
<td>{{ note.date }}</td>
</tr>
</tbody>
然后进入打字稿
openModal(content:object,note:object) {
this.modalTitle = note['author'];
this.modalDate = note['date'];
this.modalBody = note['comment'];
this.commentProperty = note['property'];
this.modalService.open(content, {ariaLabelledBy: 'modal-basic-title'})
}
这很奇怪,我想知道如何从打字稿生成这个对象,因为有必要以 Angular 启动引导模式我使用的是 Angular 12.2.3
解决方案
内容可以作为一个TemplateRef
或一个组件类型提供。
因此,您可以创建一个新组件并将其传递给函数:
this.modalService.open(YourModalComponent, yourOptions)
不传递模板中的内容(仅如此openModal(note)
),或者您可以在组件中声明模板:
<ng-template #yourModalTemplate let-modal>
...
</ng-template>
感谢引用传递它#yourModalTemplate
(你可以给它你喜欢的名字)
<tr (click)="openModal(yourModalTemplate,note)" ...>
如果您将组件类型作为内容传递,则可以将这些组件的实例与NgbActiveModal
该类的实例一起注入。然后,您可以使用NgbActiveModal
方法从组件的“内部”关闭/关闭模式。
一些有用的链接:
推荐阅读
- html - 用于调用 Azure 自动化 Runbook Webhook 的 HTML 代码
- mysql - SQL 在哪里存在内部 where 条件?
- python - 太多值无法解包(预期为 2) - 字典到 JSON
- r - 如何延长刻面网格ggplot中的特定刻度线?
- php - 从我的 public_html 文件夹中可用的所有文件夹中删除具有特定名称的文件
- git - 编辑 git 历史的影响
- vb.net - 使用校验位算法来判断输入的值是否有效?
- ruby-on-rails - haml 中的 form_tag 创建没有输入的表单
- reactjs - fetch后在react组件中获取重复元素更多
- r - 在 Shiny 中创建多个内联输入组