2017-03-27 126 views
0

嗨,我正在使用OMDB API获取电影列表。我在控制台中获取数据,但无法循环显示在UI中。它只是返回一个空的。使用Angular2从OMDB Api获取数据

export class example { 
    movies: Movie[]; 
    search: string; 

    constructor(private service: MovieService) {} 

    getMovies(): void { 
    this.service.get(this.search).then((result) => { 
     this.movies = [result]; 
     console.log(result) 
    }); 
    } 
} 

当我控制台登录我得到这个数据: enter image description here 通过它我的HTML组件我环路这样的:

<div *ngFor="let movie of movies"> 
<div>{{movie.Title}}<span>{{movie.Rated}}</span></div> 
</div> 

但是,这是行不通的。它只是没有做任何事情。

有人可以帮我吗?我真的很感激。

感谢

+1

请尝试更改'this.movi​​es = [结果]''到= this.movi​​es result.Search;'让我们看看会发生什么 – Diullei

+0

它说类型电影上不存在搜索。 –

+0

,因为我可以在你的“打印”中看到,'result'对象有一个名为'Search'的属性,它是一个包含你正在查找的数据的数组。您需要将此值传递给您的“电影”列表。 – Diullei

回答

2

拿上你的MovieService类看看。该get(...)功能需要像一个“输入”对象返回一个承诺:

{ 
    Search: Movie[]; 
    totalResults: string; 
    Response: string; 
} 

,而不是一个Movie对象。目前的打字错误。要检查,只是尝试改变线:

this.movies = [result]; 

到:

this.movies = (<any>result).Search;