Я новичок в Ioni c, Angular и Typescript, возможно ли, что введенное число будет добавлено к URL-адресу API как одно из значений ключа? Я следовал этому руководству в разделе Фильтрация ключевых событий (с key.enter)
Вот моя страница. html
<ion-input placeholder="Number" [(ngModel)]="myNum" (keyup.enter)="onEnter()"></ion-input>
<ng-container *ngIf="!error; else errorContent">
<p *ngFor="let order of orders; let i=index;">
<ion-item *ngIf="i==0">Number : <b>{{ order?.Number }}</b></ion-item>
<ion-item class="listDetails">
<p class="listTitle">
{{order?.status }}
<br />
<a>
{{ order?.date | date: 'MMM dd, yyyy' }}
<br />
{{ order?.time }}
</a>
</p>
<p class="listComment">
{{ order?.comment }}
</p>
</ion-item>
и вот мой пример URL-адреса API.
'https://myapi.com/FoodDeliveryTracking?&userName=myuser&password=mypass&MyNumber=' + myNum
Вот моя page.ts
constructor(private dataService: DataService, private http: HttpClient) {
this.data = '';
this.error = '';
}
orders= [];
ionViewWillEnter() {
// Load the data
this.dataService.getRemoteData(this.myNum).subscribe( //comment this if you will use local data
data => {
// Takes data into in single Array and print
this.orders = data.output.Result.FoodOrderTracking;
},
err => {
// Set the error information to display in the template
this.error = `An error occurred, the data could not be retrieved: Status: ${err.status}, Message: ${err.statusText}`;
}
);
}
this.dataService.getRemoteData(this.myNum).subscribe(data => {
console.log("Remote Data:");
console.log(data);
});
}
onEnter () {
this.dataService.getRemoteData(this.myNum).subscribe(data=>
{
console.log('data', data)
})
}
Вот мои data.services. ts, который предназначен для получения данных с моего URL-адреса API.
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class DataService {
myNum = ''
onEnter (docNum: string) {this.myNum = myNum}
apiUrl = 'http://127.0.0.1:8080/https://myapi.com/FoodDeliveryTracking?&userName=myuser&password=mypass&MyNumber='+myNum';
apiKey = ''; // <-- Enter your own key here!
constructor(private http: HttpClient){}
getRemoteData(){
let headers = new HttpHeaders({'apiKey': this.apiKey});
headers.append('Accept','application/json');
headers.append('X-Requested-With','XMLHttpRequest');
headers.append('content-type','application/json');
return this.http.get(this.apiUrl, {headers: headers});
}
}
Как передать переменную из моего ввода на моей странице. html в services.ts? Является ли это возможным? Так что в my services.ts
myNum = Данные, введенные с ионного ввода на моей html .page