首页 文章

属性'subscribe'在类型'() => Observable<any>'上不存在

提问于
浏览
11

服务文件

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 回答

  • 47

    你没有调用 getVideos 方法 . 您在 getVideos 的函数引用上调用 subscribe 而不是返回的值 . 调用 getVideos() 后调用 subscribe

    ngOnInit() {
    
         this.videoserv.getvideos()
            .subscribe(response => this.videos = response);
    }
    
  • 2
    ngOnInit() {
    
       this.videoserv.getvideos()
      .subscribe(responce=> this.videos = responce);
    }
    

    您应该在 videoserv 服务上调用 getvideos() 方法 . 你错过了 ()getvideos 是一个方法而不是属性 .

相关问题