angular - Input() Bind 上的 Angular 5 调用函数
问题描述
对不起,如果标题令人困惑,不知道如何措辞。我正在尝试调用一个函数来获取数据并将其传递给子组件。
父组件.ts:
getData(arg: string[]) {
let data: any[];
// Do stuff here to get data
return data;
}
parent.component.html:
<app-child [myData]="getData(['test'])"></app-child>
child.component.ts
export class ChildComponent {
@Input() myData: any[];
// Stuff here
}
child.component.html
<h3>{{ myData[0].test }}</h3>
但是,当我运行该应用程序时,我收到一条错误消息,指出它是Cannot read property '0' of undefined
. 我究竟做错了什么?我不想创建要绑定的变量,[myData]
因为那样我会拥有很多变量。我也会在其他地方使用这个功能。
任何帮助将不胜感激,谢谢!
解决方案
您的函数参数不应与 [] 一起使用,请将其更改为
<app-child [myData]="getData('test')"></app-child>
并在孩子上使用安全导航运算符以确保数据不为空
<h3>{{ myData[0]?.test }}</h3>
推荐阅读
- reactjs - 如何解决reactjs中的无限循环错误?
- vba - VBA 中的毕达哥拉斯公式 - 指数和幂
- php - 使用 PHP 从文本文件列表中删除多个文件及其名称变体
- php - 从 php popen 压缩和从命令行不同的结果
- java - png 二进制文件的 base64 编码不起作用 JDK 11.0.3+7 Eclipse 4.11.0
- javascript - 如何在javascript中按顺序分配对象值
- google-authentication - 在 Microsoft Teams 选项卡中嵌入谷歌应用程序出现名为“拒绝连接”的错误
- r - 错误地将 Excel 列显示为向量
- java - POST数据与retrofit2,承载令牌未经授权的android
- python - 是否可以减少使用 GetOldTweets3 所花费的时间