jQuery - costruire abbastanza URL dai parametri
-
25-10-2019 - |
Domanda
jQuery ha una funzione param()
, sto cercando una funzionalità simile. Ho bisogno di tornare un URL in mio oggetto. Ad esempio:
url: function() {
return this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage});
},
questo restituirà un URL sotto forma di example.com/?page=1&perPage=5
o qualcosa di simile. Come posso formare il example.com/page/1/perpage/5
url?
Soluzione
È possibile creare la propria funzione:
function build(base, params) {
for(var k in params) {
if(params.hasOwnProperty(k)) {
base += '/' + k + '/' + params[k];
}
}
return base;
}
L'unico problema è che l'ordine dei parametri non è garantito (che non è un problema per stringhe di query, ma potrebbe essere per questo tipo di URL). Si potrebbe anche voler aggiungere un controllo se base
chiude già con una barra o meno.
Altri suggerimenti
Solo un'idea:)
'example.com/?page=1&perPage=5'.replace(/[&=]/g,'/').replace('?','')
.toLowerCase();
tack questo alla fine:
replace(/[&=]/g,'/').replace('?','')
in questo modo:
url: function() {
return (this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage})).replace(/[&=]/g,'/').replace('?','');
},
? a cura di sottolineare in re alla preoccupazione di Felix Kling di 's: Questo eliminerà solo il primo? lasciando ogni altro s? 'che fanno parte della stringa di query intatto. Perfettamente sicuro da usare.