我正在尝试借助Angular的教程https://angular.io/guide/http
创建服务我正在使用Angular 7.0.7
。
该服务将从某个网址获取json数据:
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]
})
答案 0 :(得分:4)
您错过了为parenthesis
装饰器添加@Injectable()
@Injectable()
export class ProductListService {
constructor(private http: HttpClient) {
}
答案 1 :(得分:1)
您的@Injectable
不正确。添加引用要使用该服务的组件的providedIn
属性:
@Injectable({
providedIn: 'app-productlist',
})
export class ProductListService {
constructor(private http: HttpClient) {
}
另一种解决方案是只使用@Injectable()
这样的装饰器,并在您的app.module.ts
文件中将您的服务声明为提供者。