2017-08-27 78 views
0

我想發送頁面編號和pagesize到webapi, 但沒有參數傳遞,我debugedd應用程序在VS代碼,pagingModel有pageSize和PageNumber成員,他們都有值,但是當我打開chrome dev工具時,請求中沒有參數url 我的代碼有什麼問題嗎?不能發送參數與角http.get

getTasks(pagingModel: IPagingModel): Promise<TaskList> { 
    const url = this.taskUrl; 
    const params = new URLSearchParams(); 
    let option: RequestOptions; 
    // tslint:disable-next-line:forin 
    for (const key in pagingModel) { 
     params.set(key, pagingModel[key]); 
    } 

    option = new RequestOptions({search: params, params: params}); 

    return this.http.get(url, option) 
       .toPromise() 
       .then(response => response.json() as TaskList) 
       .catch(this.handleError); 
    } 

enter image description here

+0

'搜索:params,params:params' - 調用參數名稱及其變量'params'是一條冒險的道路。 –

+0

只是試圖通過它所有可用的選項中得到, – Arash

回答

0

我的代碼是好的,我剛剛導入URLSearchParams

import { Headers, Http, RequestOptions, RequestOptionsArgs, URLSearchParams } from '@angular/http'; 

我之前沒有將其導入,我不知道爲什麼,但v代碼給了我沒有錯誤。

1

我不認爲這是最好的方式。但也是這樣,工作。

const url = this.taskUrl; 
url += '?'; 

Object.keys(pagingModel).forEach(key => { 
     url += `${encodeURIComponent(key)}=${encodeURIComponent(pagingModel[key])}&`; 
    }); 

return this.http.get(url) 
      .toPromise() 
      .then(response => response.json() as TaskList) 
      .catch(this.handleError); 

}

+0

這個作品,但我不知道這是否是最好的方式。 – Arash

+0

@Arash你的代碼正在爲我工​​作。我只是沒有傳遞'params'鍵,只傳遞了'search'鍵。似乎'params'鍵不是一個有效的參數.'new RequestOptions({search:params});'。也無法理解爲什麼它不爲你工作 – Rajez

0

你可以嘗試一些像這樣的事情在角V4

import {HttpParams} from "@angular/common/http"; 
const params = new HttpParams() 
    .set('pagenumber', '<your para>') 
    .set('pagesize', "<your para>"); 

this.http 
    .get("<requrl>", {params}) // mind this you dont have to use res.json() as httpClientModule has .json() by default 

我們通過鏈接集合構建的HttpParams對象() methods.because使用新HttpClientModule HTTPParams是不可變的,它的API方法 不會導致對象突變。相反,調用set將返回一個新的包含新值屬性的HttpParams對象 。

下不會工作

params.set('pagenumber', '<para>') 
params.set('pagesize', "<para>"); 
+0

@ angular/common/http「;沒有導出成員HttpParams – Arash

+0

@Arash你必須使用http客戶端模塊而不是http模塊,將導入添加到'HttpClientModule'在進口陣列的'Ngmodule' –

+0

相同的錯誤,\t @角/普通/ HTT沒有出口memebr HttpClientModule – Arash