gpt4 book ai didi

javascript - 从数组中获取内部对象

转载 作者:行者123 更新时间:2023-12-03 04:00:09 25 4
gpt4 key购买 nike

我有一个名为 MovieSearchComponent 的组件。这会导入一个服务 MovieSearchService 和一个模型 Movie

@Component({
selector: 'movie_search',
templateUrl: './movie_search-component.html',
providers: [MovieSearchService]
})

export class MovieSearchComponent{
movies: Movie[] = [];

constructor(private movieSearchService: MovieSearchService){};

ngOnInit(){
this.getMovies();
}

getMovies(){
this.movieSearchService.getMovies()
.subscribe((response)=>{
this.movies = response;
console.log(this.movies)
});
}
}

服务。

import {Movie} from "../movie";

@Injectable()
export class MovieSearchService{

private results = {};
private api = '***7039633f2065942cd8a28d7cadad4';
private url = 'https://api.themoviedb.org/3/search/movie?api_key=' + this.api + '&language=en-US&query=Batman&page=1&include_adult=false;';

constructor(private http: Http){}

getMovies(): Observable<Movie[]>{
return this.http.get(this.url)
.map(res => res.json())
}
}

模板:

<div>
<ul>
<li *ngFor="let movie of movies.results">
{{ movie.title }}
</li>
</ul>
</div>

这确实显示了从服务返回的电影的所有标题。但我必须选择包含模板中所有电影对象的结果数组,这对我来说看起来不正确。

当我将 MovieSearchComponent 中的 console.log(this.movi​​es) 更改为 console.log(this.movi​​es.results) 时我收到错误Movie[] 类型上不存在属性“结果”。

这是电影模型:

export class Movie{
constructor(
public id: number,
public title: string,
){}
}

那么,当我可以在模板中使用 console.log(this.movi​​es.results) 时,为什么我不能使用它。

最佳答案

因为结果未在 Movie 类中定义。

将 getMovies 方法更改为:

 getMovies(): Observable<Movie[]>{
return this.http.get(this.url)
.map(res => res.json().results)
}

关于javascript - 从数组中获取内部对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com