Saya akhirnya menemukannya melalui IntelliSense pada get()
fungsi. Jadi, saya akan mempostingnya di sini untuk siapa saja yang mencari informasi serupa.
Bagaimanapun, sintaksisnya hampir identik, tetapi sedikit berbeda. Alih-alih menggunakan URLSearchParams()
parameter perlu diinisialisasi HttpParams()
dan properti dalam get()
fungsi sekarang disebut params
bukan search
.
import { HttpClient, HttpParams } from '@angular/common/http';
getLogs(logNamespace): Observable<any> {
// Setup log namespace query parameter
let params = new HttpParams().set('logNamespace', logNamespace);
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
}
Saya sebenarnya lebih suka sintaks ini sebagai parameter yang lebih agnostik. Saya juga refactored kode untuk membuatnya sedikit lebih pendek.
getLogs(logNamespace): Observable<any> {
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, {
params: new HttpParams().set('logNamespace', logNamespace)
})
}
Beberapa parameter
Cara terbaik yang saya temukan sejauh ini adalah mendefinisikan Params
objek dengan semua parameter yang ingin saya definisikan dalam. Seperti yang ditunjukkan @estus dalam komentar di bawah, ada banyak jawaban bagus dalam Pertanyaan ini tentang cara menetapkan beberapa parameter.
getLogs(parameters) {
// Initialize Params Object
let params = new HttpParams();
// Begin assigning parameters
params = params.append('firstParameter', parameters.valueOne);
params = params.append('secondParameter', parameters.valueTwo);
// Make the API call using the new parameters.
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
Beberapa Parameter dengan Logika Bersyarat
Hal lain yang sering saya lakukan dengan beberapa parameter adalah mengizinkan penggunaan beberapa parameter tanpa memerlukan kehadiran mereka di setiap panggilan. Menggunakan Lodash, cukup sederhana untuk menambahkan / menghapus parameter dari panggilan ke API. Fungsi persis yang digunakan dalam Lodash atau Garis Bawah, atau vanilla JS dapat bervariasi tergantung pada aplikasi Anda, tetapi saya telah menemukan bahwa memeriksa definisi properti berfungsi dengan cukup baik. Fungsi di bawah ini hanya akan melewati parameter yang memiliki properti yang sesuai dalam variabel parameter yang dilewatkan ke fungsi.
getLogs(parameters) {
// Initialize Params Object
let params = new HttpParams();
// Begin assigning parameters
if (!_.isUndefined(parameters)) {
params = _.isUndefined(parameters.valueOne) ? params : params.append('firstParameter', parameters.valueOne);
params = _.isUndefined(parameters.valueTwo) ? params : params.append('secondParameter', parameters.valueTwo);
}
// Make the API call using the new parameters.
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, { params: params })
this.httpClient.get(url, { params }
Lihat stackoverflow.com/a/54211610/5042169