我正在开发一个Angular 2应用程序,其中我有一些服务(Angular 2服务),它通过HTTP调用与我的服务器端方法通信。我在组件中调用服务来获取数据并在视图上显示它们。这工作正常但我已经为单独的数据操作编写了单独的服务。例如,我有一个仪表板,我在其中加载一个任务列表,所以为此我在我的组件中有一个loadTask方法,如下所示 -
public loadTask() {
console.log('Component : Dashboard Component - Method : loadTask');
//Get the current user
let currentUser = JSON.parse(localStorage.getItem('currentUser'));
this.taskListBusy = this._dashboardService.getTaskList(currentUser.EmployeeId).subscribe(
data => this.taskListItems = data,
error => this._errorLoggerService.logError(error, 'Dashboard/TaskList Component'),
() => console.log("Task List For User Id - " + this._userLoginService.getCurrentUserId() + "\n" + JSON.stringify(this.taskListItems)));
}
此方法正在调用服务方法,即
this._dashboardService.getTaskList(currentUser.EmployeeId)
其中_dashboardService.getTaskList()是一种服务方法,如下所示 -
public getTaskList(userId: any): Observable<TaskListModel[]> {
console.log('Service - DashboardService : Method - getTaskList : Params - ' + userId);
let postData = "userId=" + userId;
this._requestOptions = new RequestOptions({
method: RequestMethod.Post,
url: this._httpHelperService.apiUrl + 'Dashboard/getTaskListByUserId',
headers: this._httpHelperService.contentTypeJson,
body: JSON.stringify({ 'userId': userId })
});
console.log('Get Task List - POST Request Query : ' + JSON.stringify(this._requestOptions));
return this._http.request(new Request(this._requestOptions)).map(this._httpHelperService.extractData).catch(this._httpHelperService.handleError);
}
正如您所看到的,除了进行http调用以获取数据之外什么都不做。我想要的只是一个通用服务,它将执行我的所有HTTP调用。它应该是这样我将传递控制器名称,方法名称和参数,然后它应该进行http调用以获取数据。有没有办法可以做到这一点?