angular - 如何在 Angular 5 应用程序中正确使用 @Input()?
问题描述
我在父组件中有以下模板:
<my-table (loaded)="onTableLoaded()" [objId]="objId"></my-table>
我遇到的问题是加载子组件时 objId 为空。我可以在孩子中添加 api 调用,但我想避免它。知道如何允许父级中的 api 调用的值可以转移到子级吗?
解决方案
如果你想在 Angular 组件之间传递数据,你应该使用来自 @Angular/core 库的 Input 和 Output 属性。为了传递数据,您应该使用 @Input() ,然后带上您想要的属性的名称。例如,在子组件中的 ts 中,您可以编写:
@Input() dataEntry:boolean;
并且在您的主机组件中,当数据位于主机组件中时,您将此输入用作子组件的属性:
在主机组件 HTML 中,您可以编写:
<child [dataEntry]="....."></child>
但有关更多信息,您可以在此处阅读文档:
推荐阅读
- django - Django 对来自两个模型的表单字段进行排序
- javascript - 从 4d 矩阵 JS 中提取 2d 矩阵
- typescript - 如何在 Typescript 中使用一个已知键和一个未知键键入对象?
- opencv - 为什么我遇到一个问题,告诉我将值设置为浮动,而当我得到时,我需要将其设置为整数?
- assembly - 如何使用 MIPS 程序集将循环函数更改为递归函数?
- sql - 查找可以为 0 或可以大于 0 但必须至少有一条记录等于 0 的值
- apache-spark - PySpark 按索引将 2 列值合并到新列表中
- google-bigquery - 是否可以在 bigQuery 表中插入具有不同字段的行?
- javascript - 滚动时视差效果不适用于背景颜色
- session - mod_auth_openidc - OIDCSessionInactivityTimeout 不起作用 - 401