我是Angular的新手,正在尝试服务http。但是我遇到了这个问题。你们知道出什么问题了吗?谢谢
在终端上,显示的错误是
根据错误消息,我去了module.d.ts文件
谢谢大家,我将其更改为HttpClient,并且红线消失了,但是我仍然从终端收到错误消息。并且页面仍未显示。
对于在终端中遇到错误消息的任何人,module.d.ts中的HttpClientModule类应为空。我是通过打字稿通过代码建议意外添加的。感谢您提供的所有惊人帮助
答案 0 :(得分:1)
导入HttpClient
在app.module.ts
中
import { HttpClientModule} from '@angular/common/http';
imports:[HttpClientModule]
component.ts / service.ts
import { HttpClient } from '@angular/common/http';
constructor(private http:HttpClient){
}
答案 1 :(得分:1)
应为HttpClient
。这就是进行AJAX调用的方式,
不过,要使用HttpClient
,必须将HttpClientModule添加到imports
的{{1}}数组中
因此它应该在您的服务中
NgModule
这在您的模块中:
import { HttpClient } from '@angular/common/http';
export class ProductService {
private productUrl = 'api/products/products.json';
constructor(private http: HttpClient) {}
getProducts() {
...
}
}
这里有Stackblitz Project可以帮助您解决问题。
答案 2 :(得分:0)
问题在于,您正在服务文件中使用HttpClientModule
,而应该使用HttpClient
类。 HttpClientModule
应该导入到您的app.module.ts
文件中,如下所示:
app.module.ts
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [..., HttpClientModule, ..],
...
})
*.service.ts
import { HttpClient } from '@angular/common/http';
...
constructor(public http: HttpClient) { }
getProducts(): Observable<IProduct[]> {
const productUrl: '...';
this.http.get<IProduct[]>(productUrl).pipe(
tap(...),
catchError(...)
);
}