【问题标题】:Console error in Angular 10 when page loads页面加载时 Angular 10 中的控制台错误
【发布时间】:2021-03-09 00:28:00
【问题描述】:

当我的页面加载(ngOnInit() 方法)时,我正在准备一个如下所示的数组。但是当页面加载时,我在控制台中遇到错误

ERROR 错误:找不到类型为“object”的不同支持对象“[object Object]”。 NgFor 只支持绑定到数组等 Iterables。

Angular 早期版本不会发生这种情况。

我正在使用primeng在html上显示数据

如何准备不会出现控制台错误的数组。

提前致谢。

<p-megaMenu [model]="infoItems" (click)="click($event)"></p-megaMenu>

import { MenuItem } from 'primeng/api'

infoItems: MenuItem[];

this.infoItems = [
    { 
       label: 'Configuration Data', 
       icon: 'fa fa-fw icon-configuration', 
       items: [
          { label: 'Preview Configuration'}, { label: 'Configuration label' }
       ] 
    } 
 ];

【问题讨论】:

  • 变量是如何初始化的?项目:任何;或项目 = [];
  • 问题中增加primeng模块的初始化和导入

标签: angular primeng angular10 primeng-menu


【解决方案1】:

基于 PrimeNg's Mega Menu Documentation,您似乎忘记在您的 items 中放置一个内部数组 []

但是,已经注意到,在您的模板上您使用的是 MegaMenuItem,但在您的组件上,您使用的是 MenuItem 类型

如果您想使用其中任何一个,您可以选择其中任何一个示例

1.) MegaMenuItem

<p-megaMenu [model]="infoItems" (click)="click($event)"></p-megaMenu>
infoItems: MegaMenuItem[];

this.infoItems = [
  {
    label: 'Configuration Data',
    icon: 'fa fa-fw icon-configuration',
    items: [ [ { label: 'Preview Configuration'}, { label: 'Configuration label' }  ] ]
  }
];

2.) 菜单项

如果您想使用MenuItem,您不必更改数据中的任何内容,而是更改您的模板:

<p-menu [model]="infoItems" (click)="click($event)"></p-menu>

【讨论】:

  • 如果我将内部数组放入项目中,我会收到此错误。键入'[{标签:字符串; }, { 标签:字符串; }]' 与类型 'MenuItem'.ts(2559) 没有共同的属性
  • 已经更新了我上面的答案。似乎您想使用 MenuItem 但在您的模板中您使用的是 MegaMenuItem
  • @User 没问题 :) 希望您也可以将答案标记为已接受,这将不胜感激。非常感谢!
猜你喜欢
  • 1970-01-01
  • 2011-05-12
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-28
  • 1970-01-01
相关资源
最近更新 更多