【发布时间】:2018-04-17 18:42:59
【问题描述】:
我对在 Angular 5 中使用 httpclient 感到困惑。我是 Angular 新手,只是遵循官方 Angular 教程。我对 observables、promise、pipe 等了解不多。目前我有一项服务来处理所有 http方法。对于我使用管道的发布请求。下面是方法。
create(model: any,URI) :Observable<Object>{
return this.http.post(API_URL+URI, model)
.pipe(
catchError(this.handleError('create', model))
);
}
private handleError<T> (operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
console.error("default"+error); // log to console instead
var errors=error["error"];
var type=errors.errors;
this.log(`${operation} failed: ${JSON.stringify(errors.errors)}`);
return of(result as T);
};
}
private log(message: string) {
this.messageService.add('DataService: ' + message);
}
在组件内部,我像这样调用这个创建方法..
onSubmit() {
this.loading = true;
this._dataService.create(this.model,companytype_url).subscribe(data => {
console.log("inside component data type-company"+JSON.stringify(data));
},
error=>{
var error_data=JSON.stringify(error);
console.log("inside component error type-company ->" + error_data)
}
);
this.submitted = true;
this.loading = false;
this.companytypeForm.reset();
}
我应该在组件中使用订阅吗? 我需要一个通用的 http 类来处理所有的 api 请求。它是一个大型应用程序并且有很多组件。由于我是 Angular 新手,我对调用 http 方法的不同方式感到困惑。
【问题讨论】:
-
@DeborahK 请检查这个..
标签: angular rxjs angular5 rxjs5