2017-03-27 7 views
1

うまくいけば、これで助けてくれることを願っています。新しいAngular 2をベースにしたionic 2アプリを構築していますが、以前のバージョンのAngularに精通していますが、この全体の文字を把握しようとしています。角2 httpクエリーストリングのパラメータを取得

私はこれを実行すると、それは私のAPIのURLの罰金を引っ張ると私は応答を得ることができ、基本的なGETのクエリ文字列(例えばdomain.com?state=ca &市= somenameの)

export class TestPage { 
public state: string ='ca'; 
public city: string = null; 
constructor(private http: Http){} 

public submit() { 
    let url = "http://localhost/api"; 
    let payload = {"state": this.state, "city": this.city}; 
    this.$http.get(url, payload).subscribe(result => { 
     //result 
    }, err => { 
     //do something with the error 
    } 
) 
} 
} 

と私のAPIを設定していますしかし、質問ではクエリーストリングのどれも送信されていません。そのちょうどhttp://localhost/apiを送信します。もし私がconsole.logペイロードはその罰金。

最終的に私はそれが私は本当にこの上何もストレートフォワードを見つけることができない例を見てみるとhttps://localhost/api?state=ca&city=example

を行うために取得しようとしています。

httpにペイロードを取り込むことはできません。上記のコードは単なる例です。私には多くのクエーストリングがあります。なぜそれがペイロードを送ることを望んでいたのですか?

ご意見やご提案をいただければ幸いです。

+1

.. –

+0

角度4は、私が思う2.4の角度であることを意味します。グーグルでそれを説明する結果が得られます。 Angular.jsはv1、Angular 2はv2です。v3やv4はありませんが、なんらかの理由で2.3と2.4を呼び出します。 – GillesC

+0

@GillesC no。バージョンは4.0.0です。 2.4.0ではない。 Angularはセマンティックバージョニングを使用し、4.0は2.xバージョンの進化です。 –

答えて

1

Http.getメソッドは、RequestOptionsArgsを第2のパラメータとして実装するオブジェクトを取ります。

このオブジェクトの検索フィールドを使用すると、文字列またはURLSearchParamsオブジェクトを設定できます。

例:

// Parameters obj- 
let params: URLSearchParams = new URLSearchParams(); 
params.set('state', this.state); 
params.set('city', this.city); 

//Http request- 
return this.http.get('http://localhost/api', { 
    search: params 
}).subscribe(
    (response) => this.onGetForecastResult(response.json()), 
    (error) => this.onGetForecastError(error.json()), 
    () => this.onGetForecastComplete() 
); 

ドキュメント:イオン2が4の角度ではない。2角度に基づいていますhere

+0

説明をありがとう。これはうまくいった。それが単一のペイロードからループされるのではないかと思うので、すべてのパラメータを設定する必要はありません。 – limit

+0

余分なロジックを適用することができます。乾杯! – Shivam

関連する問題