ASP.NET Core 6后端数据路由至Angular时遇NG0900错误求助
解决Error: NG0900: Error trying to diff '[object Object]'问题
这个错误的核心原因很明确:你用*ngFor遍历的employees被赋值了一个对象,但*ngFor只能处理数组或可迭代类型。
从你的代码来看,你把employees声明成了Employee[]数组,但后端返回的响应不是直接的员工数组,而是一个包含数组的对象(比如常见的结构是{ data: [...], total: 10 }或者{ employees: [...] }),你直接把整个响应对象赋值给了employees,导致*ngFor无法遍历。
解决步骤:
- 查看控制台打印的响应结构:打开浏览器控制台,看你
console.log(employees)输出的内容,找到里面真正的员工数组所在的属性(比如data、items或者employees)。 - 修改赋值逻辑:在
next回调里,不要直接把整个响应赋值给this.employees,而是提取出数组属性。
比如假设控制台输出的响应是这样的:
{ data: [ { Id: 1, FirstName: "张三", LastName: "李四", DateOfBirth: "1990-01-01" }, { Id: 2, FirstName: "王五", LastName: "赵六", DateOfBirth: "1992-02-02" } ] }
那你需要把组件里的赋值代码改成:
next: (response) => { console.log(response); this.employees = response.data; // 这里的data替换成你实际的数组属性名 }
额外提示:
- 如果后端可以修改,也可以直接让接口返回纯员工数组,这样前端不需要做额外处理。
- 检查
Employee接口的字段名是否和后端返回的完全匹配(比如大小写,后端可能返回id而你用Id,后续可能导致渲染不出数据)。
内容的提问来源于stack exchange,提问作者owwoj
相关产品推荐
相关产品推荐

