আমি এটি ফাংশনটিতে ইন্টেলিজেন্সের মাধ্যমে খুঁজে পেয়েছি get()
। সুতরাং, আমি যারা এখানে অনুরূপ তথ্য খুঁজছেন তাদের জন্য এটি এখানে পোস্ট করব।
যাইহোক, সিনট্যাক্সটি প্রায় অভিন্ন, তবে কিছুটা আলাদা। URLSearchParams()
পরামিতিগুলি ব্যবহার করার পরিবর্তে আরম্ভ করা প্রয়োজন HttpParams()
এবং get()
ফাংশনটির মধ্যে থাকা সম্পত্তিটির params
পরিবর্তে এখন কল করা হয় 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 })
}
আমি আসলে এই সিনট্যাক্সটিকে আরও কিছুটা প্যারামিটার অজিনস্টিক হিসাবে পছন্দ করি। আমি কোডটি আরও সামান্য সংক্ষেপে তৈরি করতে রিফেক্টর করেছি।
getLogs(logNamespace): Observable<any> {
return this._HttpClient.get(`${API_URL}/api/v1/data/logs`, {
params: new HttpParams().set('logNamespace', logNamespace)
})
}
একাধিক পরামিতি
আমি এখনও অবধি খুঁজে পেলাম সেরা উপায় হ'ল Params
আমি যে প্যারামিটারগুলির মধ্যে সংজ্ঞায়িত করতে চাই তার সাথে সমস্ত বিষয়বস্তু সংজ্ঞায়িত করা। @Estus নীচের মন্তব্যে উল্লেখ করেছেন যে, একাধিক পরামিতি কীভাবে নির্ধারণ করা যায় সে সম্পর্কে এই প্রশ্নে অনেক দুর্দান্ত উত্তর রয়েছে ।
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 })
শর্তাধীন লজিক সহ একাধিক পরামিতি
আমি প্রায়শই একাধিক প্যারামিটারগুলির সাথে যা করি তা হ'ল প্রতিটি কলটিতে উপস্থিতি প্রয়োজন না করে একাধিক পরামিতি ব্যবহারের অনুমতি দেওয়া। লোড্যাশ ব্যবহার করে, শর্তসাপেক্ষে এপিআইতে কলগুলি থেকে পরামিতিগুলি যুক্ত / সরানো খুব সহজ। লোডাশ বা অ্যান্ডস্কোরস, বা ভ্যানিলা জেএসে ব্যবহৃত সঠিক ফাংশনগুলি আপনার আবেদনের উপর নির্ভর করে পরিবর্তিত হতে পারে তবে আমি দেখেছি সম্পত্তি সংজ্ঞা জন্য পরীক্ষা করা বেশ ভাল কাজ করে। নীচের ফাংশনটি কেবলমাত্র প্যারামিটারগুলিতেই পাস করবে যা প্যারামিটারের মধ্যে ভ্যারিয়েবলের মধ্যে প্রাসঙ্গিক বৈশিষ্ট্যযুক্ত properties
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 }
পরীক্ষা করে দেখুন stackoverflow.com/a/54211610/5042169