Input()Bind上的Angular 5调用函数
抱歉,如果标题令人困惑,不知道该如何表达。我试图调用一个函数来获取数据并将其传递给子组件 父.component.ts:Input()Bind上的Angular 5调用函数,angular,input,data-binding,angular5,Angular,Input,Data Binding,Angular5,抱歉,如果标题令人困惑,不知道该如何表达。我试图调用一个函数来获取数据并将其传递给子组件 父.component.ts: getData(arg: string[]) { let data: any[]; // Do stuff here to get data return data; } <app-child [myData]="getData(['test'])"></app-child> parent.component.html:
getData(arg: string[]) {
let data: any[];
// Do stuff here to get data
return data;
}
<app-child [myData]="getData(['test'])"></app-child>
parent.component.html:
getData(arg: string[]) {
let data: any[];
// Do stuff here to get data
return data;
}
<app-child [myData]="getData(['test'])"></app-child>
child.component.html
<h3>{{ myData[0].test }}</h3>
{{myData[0].test}
但是,当我运行应用程序时,我收到一个错误,说明它无法读取未定义的的属性“0”。我做错了什么?我不想创建一个绑定到[myData]
的变量,因为这样会有很多变量。我也会在其他地方使用这个函数
任何帮助都将不胜感激,谢谢 您的函数参数不应与[]一起使用,请将其更改为
<app-child [myData]="getData('test')"></app-child>
并在孩子身上使用安全导航操作员,以确保数据不是空的
<h3>{{ myData[0]?.test }}</h3>
{{myData[0]?.test}
我不明白。为什么要删除[]
?该函数接受一个数组。当我删除它时,仍然会出现相同的错误。如果函数接受数组,则只需使用数组变量。我最终使用了隐式参数变量。不知道为什么它不起作用。谢谢调用getData()时是否发生http请求?或订阅任何其他服务?没有。我也觉得很奇怪。