2017-03-27 122 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;