set() の使用
set() のAngular公式ドキュメントから
set(param: string, value: string | number | boolean): HttpParams
戻り値 HttpParams: 新しい値を持つ新しいボディ。
それでは、いくつかのパラメーターを追加する方法を見てみましょう -
const params = new HttpParams()
.set('aaa', '111')
.set('bbb', "222");
set() メソッドをチェーンして HTTPParams オブジェクトを作成していることに注意してください。その理由は、HTTPParams が immutable であるためです。
set メソッドを呼び出すたびに、新しい値を持つ新しい HttpParams オブジェクトが返されます。最初に返された HttpParams オブジェクトを取得し、それを使用してさらに変更する必要があります。
したがって、次のようにするとうまくいきません
const params = new HttpParams(); // empty HttpParams object
params.set('aaa', '111'); // lost
params.set('bbb', "222"); // lost
呼び出しているだけでset
、返されたHttpParams
オブジェクトを保持していません。したがって、最後に空の HttpParams objectがあり、set への 2 つの呼び出しは効果を追加しません。それを機能させるには、次のことを行う必要があります-
const params = new HttpParams(); // empty HttpParams object
params = params.set('aaa', '111'); // storing the returned HttpParams object, now **it has aaa**
params = params.set('bbb', "222"); // add another parameter and store it. so now **it has both aaa and bbb**
fromString の使用
fromString を使用して httpParams を作成することもできます。クエリ パラメーター文字列が既に用意されている場合に便利です。次の構文を使用してそれを行うことができます
const params = new HttpParams({
fromString: 'aaa=111&bbb=222'
});