如何将可观察的数据转换为angular6

时间:2018-10-24 23:34:09

标签: angular

我知道这里可能已经回答了这个问题,但不能解决我的问题 Angular - Convert a Observable<number> to a number

在这里,我试图将数据作为数字传递给我的服务(角度6),以便执行数据分页。  如果我执行类似代码行的操作,数据将被发布到服务器后端

getAll(row: string, rowperpage: string): Observable<any> {

由于我正在使用可以帮助我执行分页的数字,如果实施

 getAll(row: number, rowperpage: number): Observable<any> {

它将在下面显示错误

src / app / service / crud.service.ts(47,52)中的错误:错误TS2345:类型'(row:number,rowperpage:number)'的参数无法分配给类型'的参数(标题?:HttpHeaders | {标题:字符串|字符串[];)观察?:“正文”;参数?

请问如何将可观测数据转换为数字,以将其传递给Angular 6中的服务

这是我的 service.ts

//crud_s: Crud[];

constructor(private http: HttpClient) { }

  getAll(row: number, rowperpage: number): Observable<any> {

    return this.http.get(`${this.baseUrl}/list1`, {row: row, rowperpage: rowperpage}).pipe(
      map((res) => {
        this.crud_s = res['data'];
        return this.crud_s;
    }),
    catchError(this.handleError));
  }

这是我的 component.ts

row = 0;
rowperpage = 4;

  getCars(): void {

    this.crudService.getAll(this.row, this.rowperpage).subscribe(
      res => {
  //this.row+=this.rowperpage;
//more code coming

        this.crud_s = res;
      },
      (err) => {
        this.error = err;
      }
    );
  }

1 个答案:

答案 0 :(得分:0)

您引用的错误不是来自您说的那行,而是来自这里:

 return this.http.get(`${this.baseUrl}/list1`, {row: row, rowperpage: rowperpage})

第二个参数是请求规范,而不是查询数据。要添加查询数据,您必须这样做:

 return this.http.get(`${this.baseUrl}/list1`, {params:{row: row, rowperpage: rowperpage}})

甚至使用HttpParams-但仍然会像上面那样添加。