错误TS2339:属性'找到'在类型'响应'中不存在

时间:2018-04-10 18:54:23

标签: angular rxjs

我在这里做错了什么?

我收到此错误:

  

TS2339:财产'发现'类型'响应'。

上不存在

我搜索的是,当我想通过标题而不是ID来查找电影时,我无法使用find?

我现在正在做的是我希望能够点击电影标题,然后进入另一个组件/侧面,我可以在其中显示有关电影/图片的信息。

来自movie.service.ts的代码

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/toPromise';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/first';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/operator/filter';

import { Movie } from './shared/Movie';

interface IMovieData {results : Movie;}
export interface IVideoData {results : IVideo[];}
export interface IVideo {'id': string; 'key':string; 'name':string; 'site': 
string; 'type':string; }

@Injectable()
export class MovieService {

private movie : any;
private key : string;

constructor(private http : Http) { }

getMovies(): Observable<Movie[]> {
return this.http.get('http://api.themoviedb.org/3/discover/movie?
primary_release_date.gte=2014-09-15&primary_release_date.lte=2014-10-
22&api_key=mykey')
  .map((res: Response) => res.json()['results']);
}

public getMovie(title: string): Observable<Movie> {
return this.http.get("http://api.themoviedb.org/3/search/movie?query=" + 
title + "&api_key=mykey")
  .map(movies => movies.find(movie => movie.title == title));
}
来自moviedetail.component.ts的

代码

import { Component, OnInit } from '@angular/core';
import { Http, Response} from '@angular/http';
import { Observable } from 'rxjs/Observable';
import  'rxjs/add/operator/map';
import { Router, ActivatedRoute, Params } from '@angular/router';
import { Movie } from '../Shared/Movie';
import { MovieService } from '../movie.service';

@Component({
selector: 'app-moviedetail',
templateUrl: './moviedetail.component.html',
styleUrls: ['./moviedetail.component.css']
})
export class MoviedetailComponent implements OnInit {

public movie : Movie;

constructor(
private http: Http,
private movieService : MovieService, 
private route: ActivatedRoute,
private router: Router
          )
{
}

ngOnInit() {


 this.movieService.getMovie(this.route.snapshot.params['title']).subscribe(success=>{this.movie=success;});
} 




public gotoMovies(){
this.router.navigate(['/movielist']);
}

}

0 个答案:

没有答案