Тип не может быть назначен типу. - PullRequest
0 голосов
/ 09 января 2019

Я пытаюсь создать сервис с помощью учебника Angular https://angular.io/guide/http

Я использую Angular 7.0.7.

Служба будет получать данные JSON по некоторому URL:

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

@Injectable
export class ProductListService {
  constructor(private http: HttpClient) {
  }

  productListUrl: string = "https://blahblah.com/products";

  getProductList() {
    return this.http.get(this.productListUrl);
  }
}

Я получаю волнистую линию под @Injectable() с заголовком этого вопроса. Почему это происходит, и как мне это решить?

У меня есть компонент, который будет использовать этот сервис:

 import { ProductListService } from '../services/productList.service';
 @Component({
   selector: 'app-productlist',
   templateUrl: './productlist.component.html',
   styleUrls: ['./productlist.component.css'],
   providers: [ProductListService]
 })

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Ваш @Injectable неверен. Добавьте свойство providedIn, которое ссылается на ваш компонент, который будет использовать сервис:

@Injectable({
  providedIn: 'app-productlist',
})
export class ProductListService {
   constructor(private http: HttpClient) {
}

Другое решение - просто использовать декоратор так: @Injectable() и объявить вашу службу в файле app.module.ts в качестве поставщика.

0 голосов
/ 09 января 2019

Вы пропустили добавление parenthesis для @Injectable() декоратор

@Injectable()
export class ProductListService {
   constructor(private http: HttpClient) {
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...