首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >类型为'object‘的Angular 8错误'[object Object]’。NgFor仅支持绑定到迭代对象,如数组

类型为'object‘的Angular 8错误'[object Object]’。NgFor仅支持绑定到迭代对象,如数组
EN

Stack Overflow用户
提问于 2019-07-01 05:07:07
回答 1查看 3.5K关注 0票数 1

我是Angular 8的新手,我使用以下结构从http get获取数据,并尝试使用*ngFor迭代数据。不幸的是,我得到了以下错误。

如何修复这个错误?提前感谢'[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays.学生模型

代码语言:javascript
运行
复制
export class Student {
    Name: string;
    Sport: string;

}

student.service.ts

代码语言:javascript
运行
复制
    public getData(path: string): Observable<Student[]> {
        return this.http.get<Student[]>(this.mainUrl + path).pipe(
            tap(_ => console.log('fetched data'))
        );
    }

student.component.ts

代码语言:javascript
运行
复制
import { Observable, of } from 'rxjs'; 
import { Student } from 'src/app/models/student';
import { HttpService } from 'src/services/http.service';
import { StudentService } from './student.service';


@Component ({
    selector: 'student',
    templateUrl: 'student.component.html',
    styleUrls: ['student.component.css']
})

export class StudentComponent implements OnInit {
    students: Student[];

    constructor(
        private studentService: StudentService
        ) {
    }

    getStudents(): void {

        let ppp = this.studentService.getData("get_students");
        this.studentService.getData("get_students").subscribe(
            students => { this.students = students }
            // students => {console.log(this.students)}
        );
        console.log(this.students); // prints undefined
    }


    ngOnInit() {
        this.getStudents();

    }   
}

student.component.html

代码语言:javascript
运行
复制
<li *ngFor="let p of students">

  <div>hello</div>
</li> 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-01 05:12:10

您的服务器响应是一个对象,您需要从中检索服务器响应数据

代码语言:javascript
运行
复制
public getData(path: string): Observable<Student[]> {
  return this.http.get<Student[]>(this.mainUrl + path).pipe(
    map(({ student }) => student)
  );
}

如果您的服务器发送实际的数组,如果它仍然不断地抱怨您需要将该响应转换为一个数组,那么这应该是可行的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56828082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档