在我的Angular應用程序中,我通過API調用返回結果,並允許用戶通過一系列複選框選擇來過濾這些結果。現在我遇到了一個問題,雖然當爲某個過濾器發送一個值時會返回預期結果,但如果選擇了多個值(例如,通過多個郵政編碼進行過濾),我會將零結果打印到風景。沒有錯誤,只是沒有結果。我終於在使用Chrome devtools網絡選項卡後,發現問題在於,而不是在有效載荷中用引號括住每個項目 - 就像這樣:「90001」,「90002」,什麼是發送的是:「90001,90002」。換句話說,引號就像是一個值而不是兩個一樣。發送值作爲一個字符串而不是個別值發送
這是代碼,在這裏我使用的是「加盟」放在一起選擇了值:
this.sendZipcode.emit(this.zipcodeFilters.text = arr.length === 0 ? undefined : arr.join(','));
我不知道我該怎麼調整這個「加盟」的方式是構造或找到其他解決方案而不是「加入」,以便讓每個項目都包含在引號中,而不是像一個長字符串一樣包裝。
僅供參考,這是我在選擇兩個郵編後在Chrome devtools的網絡選項卡中看到的內容。正如我所解釋的,它裹得像一個字符串,而不是兩個值:
addresses.zipCode: {$in: ["90001, 90002"]}
由於@ChrisG。我會嘗試一下。 – Muirik
那麼,發送這樣的東西?這個.zipcode.emit(this.zipcodeFilters.text = arr.length === 0?undefined:arr); – Muirik