服务文件
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());
}
}
这里是subscribe方法显示此错误的位置
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);
}
}
我有服务文件,我必须调用我的api来获取api的,当我要订阅其他类中的方法,我调用该服务方法getvideos()然后它显示属性“订阅”的错误在type()=> observable上不存在
2 回答
你没有调用
getVideos
方法 . 您在getVideos
的函数引用上调用subscribe
而不是返回的值 . 调用getVideos()
后调用subscribe
:您应该在
videoserv
服务上调用getvideos()
方法 . 你错过了()
,getvideos
是一个方法而不是属性 .