【问题标题】:Component does not receive Data from Service组件未从服务接收数据
【发布时间】:2017-11-28 12:15:33
【问题描述】:

我松散地遵循了 Angular 教程,并尝试从网络服务器接收数据,效果很好。但是在调用组件中,我没有收到任何数据。我仔细检查了我的代码并与教程进行了比较,从我的角度来看,一切都应该没问题。 我没有收到任何错误,可以在控制台中看到数据,但我没有出现在组件中。谁能解释一下为什么我没有收到数据?

这是服务功能:

getProjects(): Promise<Project[]> {

    return this.http.get(this.apiURL)
         .toPromise()
         .then(response => {
             console.log(response.json());
             response.json() as Project[]
         })
         .catch(this.handleError);
}

这是我的组件

export class FrontpageComponent implements OnInit {

    projects: Project[] = [];

    constructor (private projectService: ProjectService) {}

    ngOnInit(): void {

        this.projectService.getProjects()
            .then(projects => {
                this.projects = projects;

                console.log(projects);
       });
    }
}

我的项目模型目前只是:

export class Project {
    dmResponse: Object;
}

【问题讨论】:

  • 添加returnreturn response.json() as Project[]

标签: angular


【解决方案1】:

在您的服务中,您应该返回值:

     .then(response => {
         console.log(response.json());
         return response.json() as Project[];
     })

这种对箭头函数的隐式返回仅在语句没有大括号时有效。即:

     .then(response => response.json() as Project[])

【讨论】:

  • 非常感谢,不知道。
猜你喜欢
  • 2016-07-24
  • 2020-09-17
  • 2020-12-09
  • 2018-10-16
  • 1970-01-01
  • 2020-04-14
  • 2019-08-13
  • 2019-08-21
  • 2022-01-13
相关资源
最近更新 更多