angular - 如何在角度 6 中从另一个服务调用一项服务
问题描述
在下面的代码中,我有这个服务 1:uploadAttachment 方法,它实际上是在进行 http post 调用,并且这个方法(uploadAttachment)是从另一个服务 2 调用的。在服务 2 中,我总是得到未定义的服务 1 的实例。因此,调用服务 1 失败。
服务一:
@Injectable({
providedIn: 'root'
})
export class Service1 {
constructor(private http: HttpClient) {}
uploadAttachments(formData: any): any {
const headers = new HttpHeaders();
headers.append('Content-Type', 'multipart/form-data');
headers.append('Accept', 'application/json');
return this.http.post(this.baseURL + 'Data/UpdateInsertAttachments', formData,
{headers: headers});
}
}
服务二:
@Injectable({
providedIn: 'root'
})
export class Service2 {
constructor(private service: Service1) {
fileChange(event) {
const formData: FormData = new FormData();
// some code
this.service.uploadAttachments(formData).subscribe(
resp => {
if (resp === -1 ) {
alert('Error occured while uploading the attachment');
return;
} else {
// some code
}
},
(error) => {
console.log('POST ERROR in method uploadAttachments: ' + error.error);
});
}
}
解决方案
由于 Service1 在其签名中需要一个 HttpClient,因此您必须向它提供这个
推荐阅读
- java - Tapestry (5.7.2) - 通过 XHR 从内部组件刷新外部区域
- javascript - 使用for循环查找对象中属性值的函数,但它始终返回No such value
- windows - vscode liveshare中是否可以共享端口443(https)?
- multithreading - 如何在 Clojure 中处理并发用户请求?
- css - Angular - 使用 Mat Paginator,如何删除页面按钮上的背景颜色?
- docker - 如何更改在 docker 下运行的 Logstash 的默认 URL?
- java - 在 liquibase 脚本中使列不可为空
- python - 如何在 TensorFlow 中将 NumPy 数组转换为 MapDataset
- postgresql - 通过调用从 azure-web-app-service 中的数据库获取数据的任何路由获取 500 错误
- python - 如何覆盖文件?