我已经检查了分页实现的文档和源代码(advanced-example-server.component.ts)。发现它使用的ServerDataSource只通过HTTP GET实现了分页(URL中暴露的_sort、_limit、_page等参数).....由于我目前的项目需要使用POST将前端参数发送到使用扩展到HTTP post调用实现的后端Restful API,所以我不知道如何在分页请求中添加额外的参数。我需要将request_server传递给extendsplugin.ts
extendsplugin.ts
import { Observable } from 'rxjs/internal/Observable';
import { ServerDataSource } from 'ng2-smart-table';
export class PostServerDataSource extends ServerDataSource {
protected requestElements(): Observable<any> {
let httpParams = this.createRequesParams();
return this.http.post(this.conf.endPoint, request_server, { observe: 'response' });
}
}anotherComponent.ts
swiftListTable() {
const request_server = JSON.stringify({ "userType": this.currentUser.role, "authName": this.currentUser.username })
this.source = new PostServerDataSource(this.http,{endPoint: this.service.apiURL + 'swift/pagination', dataKey: 'content', pagerLimitKey:"_limit",
pagerPageKey:"_page",
sortDirKey: "pageable",
sortFieldKey: "pageable",
totalKey:'totalElements'});
}发布于 2019-08-05 15:59:35
如果您想发送POST请求,您的请求主体可以包含一个JSON对象,该对象具有任意多个属性。因此,您只需要在createRequestParams()方法中添加额外的参数并返回它们。另请参阅Official Angular Guide,以更好地了解Angular的HttpClient如何处理POST请求。
https://stackoverflow.com/questions/57353747
复制相似问题