【发布时间】:2019-02-11 03:47:20
【问题描述】:
在我的父组件中,我按如下方式填充数组:
myarray = [];
...
... // forloop
this.myarray.push({id: <someid>, name: <somename>});
在我的父模板中,我将此设置为子模板的输入
<childcomponent [myarray]="myarray"></childcomponent>
在我的子组件中,我将输入声明为:
@Input() myarray;
但是当我尝试迭代并获取长度时,我无法迭代并且长度为 0。然后我尝试执行“typeof”它返回一个对象。我尝试使用 console.log(myarray) 写入控制台,它给了我:
[]
0: {id: <someid>, name: <somename>}
【问题讨论】:
-
你能创建一个stackblitz吗
-
你可以使用@Input() myarray = new Array
();它应该工作 -
它不起作用。仍然无法迭代
-
直截了当。我认为其他地方有问题。你能创建一个堆栈闪电战,以便其他人可以提供帮助。你可以从stackblitz.com创建它
-
是的,我发现了。这是因为我在订阅服务后填充了数组。在这种情况下,我在子 html 中放置了一个
*ngIf=myarray,所以它只会在 myarray 准备好时呈现
标签: angular