Angular中HTML无法展示JSON对象单个属性的问题
问题根源
你用{{ cu | json }}能正常显示内容,说明cu是Notification类型的数组,而非单个Notification对象。数组本身没有id属性,直接访问cu.id自然会抛出错误。
解决方案
场景1:遍历数组展示所有元素的属性
如果需要展示数组里每一条通知的属性,用*ngFor循环遍历数组:
<div *ngFor="let item of cu"> 通知ID:{{ item.id }}<br> 通知标题:{{ item.title }} <!-- 替换为你的实际属性字段 --> </div>
场景2:访问数组中单个元素的属性
如果只需要取数组里某一个特定元素(比如第一个),必须先判断数组是否存在且非空,避免空指针错误:
<div *ngIf="cu && cu.length > 0"> 第一条通知ID:{{ cu[0].id }} </div>
场景3:修正变量赋值逻辑
如果你原本期望cu是单个Notification对象,检查组件中的赋值代码——大概率是把数组错误赋值给了这个变量:
// 错误示例:将数组赋值给了期望单个对象的变量 this.cu = this.notificationApi.getNotifications(); // 该方法返回Notification[]类型 // 正确示例:取数组中的单个元素(以第一个为例,需加空值判断) const notifications = this.notificationApi.getNotifications(); this.cu = notifications.length > 0 ? notifications[0] : null;
额外提示:空值安全操作符
如果不确定cu或数组元素是否存在,用Angular的空值安全操作符?.避免报错:
<!-- 遍历场景 --> <div *ngFor="let item of cu"> 通知ID:{{ item?.id }} </div> <!-- 单个元素场景 --> {{ cu?.[0]?.id }}
内容的提问来源于stack exchange,提问作者Lakshmi Sureshan
相关产品推荐
相关产品推荐

