角度服务为空?

时间:2019-06-01 12:26:56

标签: angular

我已经在angular 7中创建了一个项目,并且从以前的angular项目中复制了一些代码。首先,我提供一个非常简单的服务:

import { Injectable } from '@angular/core';
import { environment } from '../environments/environment';
import { HttpClient,HttpErrorResponse} from  '@angular/common/http';
import { Observable } from 'rxjs';

@Injectable({
  providedIn: 'root'
})
export class ApiService {

  constructor(private  httpClient:  HttpClient) { 

  }

  getValues():Observable<string[]>{
    var url = `${environment.apiUrl}/api/values`;
    return  this.httpClient.get<string[]>(url);    
  }

  getTest():Observable<string[]>{
    var url = `${environment.apiUrl}/api/test`;
    return  this.httpClient.get<string[]>(url);    
  }
}

然后我只需从组件中调用它即可

import { Component, Inject, OnInit } from '@angular/core';
import { ApiService } from '../../api.service';

@Component({
  templateUrl: 'fleet.component.html'
})
export class FleetComponent implements OnInit {
  constructor(private  apiService:  ApiService) {}  

  ngOnInit(): void {
    this.apiService.getValues()
    .subscribe(
      result => {
        // Handle result
        console.log(result)
      },
      error => {
        alert(error);
      },
      () => {
        // 'onCompleted' callback.
        // No errors, route to new page here
      }
    );
  }
}

是否this.apiService为null?我在这里想念什么吗?我可以看到我的旧项目中没有任何导入或声明。

感谢所有帮助

错误:

  

ERROR错误:未捕获(承诺):错误:StaticInjectorError(AppModule)[HttpClient]:     StaticInjectorError(平台:核心)[HttpClient]:       NullInjectorError:HttpClient没有提供程序!   错误:StaticInjectorError(AppModule)[HttpClient]:     StaticInjectorError(平台:核心)[HttpClient]:       NullInjectorError:HttpClient没有提供程序!       在NullInjector.push ../ node_modules/@angular/core/fesm5/core.js.NullInjector.get(core.js:8896)       在resolveToken(core.js:9141)       在tryResolveToken(core.js:9085)       在StaticInjector.push ../ node_modules/@angular/core/fesm5/core.js.StaticInjector.get(core.js:8982)       在resolveToken(core.js:9141)       在tryResolveToken(core.js:9085)       在StaticInjector.push ../ node_modules/@angular/core/fesm5/core.js.StaticInjector.get(core.js:8982)       在resolveNgModuleDep(core.js:21218)       在NgModuleRef_.push ../ node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get(core.js:21907)       在injectInjectorOnly(core.js:1774)       在resolvePromise(zone.js:831)       在resolvePromise(zone.js:788)       在zone.js:892       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask(zone.js:423)       在Object.onInvokeTask(core.js:17290)       在ZoneDelegate.push ../ node_modules / zone.js / dist / zone.js.ZoneDelegate.invokeTask(zone.js:422)       在Zone.push ../ node_modules / zone.js / dist / zone.js.Zone.runTask(zone.js:195)       在排水微任务队列(zone.js:601)

1 个答案:

答案 0 :(得分:0)

import { NgModule }         from '@angular/core';
import { BrowserModule }    from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';


@NgModule({
  imports: [
    BrowserModule,
    // import HttpClientModule after BrowserModule.
    HttpClientModule,
  ],
  declarations: [
    AppComponent,
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule {}
相关问题