dossier de service
import { Observable } from 'rxjs/Rx';
import { Http,Response} from '@angular/http';
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/Map';
@Injectable()
export class VideoService {
private geturl='/api/videos';
constructor(private _http:Http) { }
getvideos()
{
return this._http.get(this.geturl)
.map((response:Response) => response.json());
}
}
voici où la méthode subscribe montre cette erreur
import { VideoService } from '../video.service';
import { Component, OnInit } from '@angular/core';
import {Video} from '../video';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'app-videocenter',
templateUrl: './videocenter.component.html',
styleUrls: ['./videocenter.component.css']
})
export class VideocenterComponent implements OnInit {
videos: any;
onselectvideo:Video;
switch:boolean=false
constructor(private videoserv:VideoService) {
//console.log(this.videos);
}
onselect(vid:any)
{
this.switch=true;
this.onselectvideo =vid;
console.log(vid);
}
ngOnInit() {
this.videos=this.videoserv.getvideos
.subscribe(responce=>this.videos=responce);
}
}
j'ai un fichier de service dans lequel je dois appeler mon API pour obtenir les API et quand je vais souscrire la méthode dans l'autre classe où j'appelle cette méthode de service getvideos (), puis en montrant l'erreur que la propriété "s'abonner" n'existe pas sur type () => observable
Vous n'appelez pas la méthode getVideos
. Vous appelez subscribe
sur la référence de fonction getVideos
et non la valeur renvoyée. Appelez subscribe
après avoir appelé getVideos()
:
ngOnInit() {
this.videoserv.getvideos()
.subscribe(response => this.videos = response);
}
ngOnInit() {
this.videoserv.getvideos()
.subscribe(responce=> this.videos = responce);
}
Vous devriez appeler la méthode getvideos()
sur le service videoserv
. Le ()
, getvideos
manquait.