Http не определен в функции, объявленной в AppComponent, вызываемой в библиотеке JS - PullRequest
0 голосов
/ 08 декабря 2018

пытается вызвать функцию, которая возвращает обещание из ответа http в другой библиотеке javascript (AJV), но модуль httpClient в undefined

Вопрос в том, можем ли мы использовать импортированный модуль по appcomponent в любом другом узлемодуль.

Файл компонента приложения:

import { Component, OnInit } from '@angular/core';
import * as Ajv from 'ajv';
import { HttpClient } from '@angular/common/http';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html'
})
export class AppComponent implements OnInit{
  title = 'testajv';

  schema: any = {
   //Some Json Schema

  };

  ajv: any = new Ajv({loadSchema: this.loadSchema});
  validate: any = null;
  valid: any ;
  data: any = {
     "foo": ""
  };
  uri: string = "assets/schemas/defs.json";

  constructor(private http: HttpClient) {}

  ngOnInit(){

    this.ajv.compileAsync(this.schema).then(
      (validate) => {
        this.valid = validate(this.data);
        console.log(validate.schema);
      });
  }
  loadSchema(uri){
    return this.http.get(uri).toPromise().then(
      res => {
        return res;
      }
    )
  }


}

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'get' of undefined
    TypeError: Cannot read property 'get' of undefined
        at Object.push../src/app/app.component.ts.AppComponent.loadSchema (app.component.ts:79)
        at loadMissingSchema (async.js:67)
        at _compileAsync (async.js:56)
        at async.js:32

1 Ответ

0 голосов
/ 08 декабря 2018

Вы импортировали HttpClientModule в свой AppModule?

...