前提
AngularでWebアプリを開発している中での質問です。(超初心者です。)
Test.component.tsではAngularのHttpClientを利用して外部ネットワークに格納されているpageSize配列の0番目を取得しています。(取得できています。)
#質問内容
TestService.tsの「postParam = postParam.set('pageSize','100')」となっているところの'100'を、test.component.tsの「this.response」の値('100'が格納されています。)を代入したいのです。
つまり、
「postParam = postParam.set('pageSize','100')」を
「postParam = postParam.set('pageSize',this.response)」のような形で表したいのですが、方法があればお教えいただけないでしょうか。
何卒よろしくお願いいたします。
該当のソースコード
urlEncoder.ts
TypeScript
1import { HttpParameterCodec } from '@angular/common/http'; 2 3export class UrlEncoder implements HttpParameterCodec { 4 encodeKey(key: string): string { 5 return encodeURIComponent(key); 6 } 7}
###TestService.ts
TypeScript
1import { HttpClient, HttpParams } from '@angular/common/http'; 2import { UrlEncoder } from 'urlEncoder.tsのパス'; 3 4export class TestService{ 5 constructor(private http: HttpClient) { }; 6 7 private setRequestParams(): HttpParams{ 8 let httpParams: HttpParams = new HttpParams({ encoder: new CustomURLEncoder() }); 9 httpParams = httpParams.set('hoge', '1'); //http://-----&hoge=1 になります。 10 } 11 12 paramsGet(path: string, postParams: any = {}): Observable<any> { 13 let postParam: HttpParams = this.setRequestParams(); 14 postParam = postParam.set('pageSize','100')//'100'の部分をthis.responseの値を参照したい。 15 return this.http.get(path, { params: postParam }); 16 } 17};
###test.component.ts
TypeScript
1import TestService from {'Service.tsのパス'}; 2 3@component{ 4 略 5} 6 7export class TestComponent implements OnInit{ 8 constructor( 9 private test: TestService, 10 ) 11 12 ngOnInit(){ 13 this.test.paramsGet('http://------').subscribe(res => { 14 this.response = res.pageSize[0] //外部インターネット上のpageSize配列の0番目を取得 15 } 16 ) 17 } 18 19}
試したこと
初心者のため的外れかもしれませんが、this.response廻りをexportできないか試しましたがエラーでした。
this.test.paramsGet().略( 略 )の外からはthis.test.paramsGet().略( 略 )内のthis.responseを参照できないことは理解しています。
回答1件
あなたの回答
tips
プレビュー