首页 > 解决方案 > 角度服务方法不是功能产品构建

问题描述

我尝试让我的 Angular 应用程序在 prod 模式下运行,以检查一切是否正常。

该应用程序使用 swapi API 来获取工作正常的演员,除了在产品构建中,然后我收到以下错误

this.dataService.getActors 不是函数

这是获取所有Actor的方法:

import { Injectable } from '@angular/core';
import { HttpClient, HttpResponse } from '@angular/common/http';

import { Observable } from 'rxjs/Observable';

import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';

import { IActor } from '../interfaces/Actor';

import { ErrorService } from './error.service';


/**
 * SWAPI Data Service to get all from their API we need
 */

@Injectable()

export class DataService {

  /**
* we need the http client here to get API data
*/

  constructor(private http: HttpClient, public error: ErrorService) { }

  /**
 * Method to get all Actors
 */

  getActors(): Observable<IActor[]> {
    return this.http.get<IActor[]>('//swapi.dev/api/people/')
      .map(data => {
        return data['results'];
      });
  }

  /**
* Method to get Actor details by their ID
*/

  getActorDetails(id: string): Observable<IActor[]> {
    return this.http.get<IActor[]>(`//swapi.dev/api/people/` + id + '/')
      .map(data => {
        return data['results'];
      });
  }

}


这是我的组件中的调用:

import { Component, OnInit, Input } from '@angular/core';
import { IActor } from '../../interfaces/Actor';
import { HttpClient } from '@angular/common/http';
import { Router } from '@angular/router';
import { DataService } from '../../services/data.service';

@Component({
  selector: 'app-actors',
  templateUrl: './actors-list.component.html',
  styleUrls: ['./actors-list.component.scss']
})
export class ActorsListComponent implements OnInit {

  @Input() actors: IActor[];

  constructor(private router: Router, private http: HttpClient, private dataService: DataService) { }


  ngOnInit(): void {
    this.dataService.getActors()
      .subscribe((data) => { this.actors = data; });
  }



}

以下是检查不正确的全部文件。我在这里想念什么?谢谢!

标签: angular

解决方案


从 DataService中删除providedIn:'root'并添加@Injectable()如下。还将您的 DataService 添加到提供程序数组下的 app.module.ts 中。像,提供者:[ DataService ]

import {}

@Injectable()
export class DataService {
      // Your code
}

推荐阅读