我试图从服务订阅一个observable,它构建没有错误,但我在浏览器中查看时得到错误“this.service.getBanners(…).subscribe不是一个函数”.
服务:
import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; @Injectable() export class BannerService { banners: any = ['1','2','3']; constructor( ) {} getBanners(): Observable<any[]> { return this.banners; } setBanners(banners: any[]): void { this.banners = banners; } }
零件:
import { Component,ViewEncapsulation,OnInit } from '@angular/core'; import { Observable } from 'rxjs'; import { BannerService } from './../banner/banner.service'; @Component({ selector: '.banner',templateUrl: './banner.component.html',styleUrls: ['./banner.component.sass'],encapsulation: ViewEncapsulation.None }) export class BannerComponent implements OnInit { banners: any[]; constructor(private bannerService: BannerService){ } ngOnInit() { this.bannerService.getBanners().subscribe(banners => this.banners = banners); } }
我有什么想法我做错了吗?
你应该返回一个observable,而不是你返回一个数组,
原文链接:https://www.f2er.com/angularjs/140900.htmlgetBanners(): Observable<any[]> { return Observable.of(this.banners); }