You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中NgFor遍历对象内数组访问title属性报错求助

解决Angular遍历电影数组时访问title报错的问题

问题原因

keyvalue管道是用来遍历对象的键值对的,而movieData.results是数组类型,强行使用keyvalue会把数组转换成KeyValue<unknown, unknown>结构(键为数组索引,值为数组元素),此时你访问的item是键值对对象,并非电影数据本身,自然找不到title属性。

解决方案

直接移除keyvalue管道,用*ngFor直接遍历数组即可:

修改前的模板代码

<div *ngFor="let item of movieData.results | keyvalue">
  {{ item.title }}
</div>

修改后的模板代码

<div *ngFor="let item of movieData.results">
  {{ item.title }}
</div>

额外优化(类型安全)

为了彻底避免类型相关报错,建议在组件中定义电影数据的类型接口:

组件TS代码示例

// 定义单个电影数据的接口
interface Movie {
  title: string;
  // 根据API返回数据补充其他属性,比如id、release_date等
}

// 定义API返回的整体数据结构
interface MovieApiResponse {
  results: Movie[];
}

// 组件中声明变量时指定类型
movieData: MovieApiResponse = { results: [] };

// 调用API时指定返回类型
fetchMovies() {
  this.http.get<MovieApiResponse>('你的电影API地址')
    .subscribe(data => {
      this.movieData = data;
    });
}

这样模板中访问item.title时,TypeScript会自动识别属性类型,既不会报错,也能提升代码可读性。

内容的提问来源于stack exchange,提问作者r-r-i

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 13:20:28