let httpParams = new HttpParams().set('aaa', '111');
httpParams.set('bbb', '222');
Pourquoi cela ne fonctionne-t-il pas ? Il ne fixe que le 'aaa' et PAS le 'bbb'.
De plus, j'ai un objet { aaa : 111, bbb : 222 }. Comment puis-je définir toutes les valeurs sans boucler ?
UPDATE (cela semble fonctionner, mais comment éviter la boucle ?)
let httpParams = new HttpParams();
Object.keys(data).forEach(function (key) {
httpParams = httpParams.append(key, data[key]);
});
3 votes
Je suis d'accord avec vous pour dire que
httpParams.set('bbb', '222');
devrait fonctionner. J'ai d'abord essayé ça et j'étais très confus. Mais remplacez cette ligne parhttpParams = httpParams.set('bbb','222');
fonctionne. pour ceux qui n'en règlent que 2, la réponse en chaîne d'un autre utilisateur en dessous est également agréable.1 votes
Utilisez simplement l'affectation (=) comme @AngelaPan l'a suggéré et vous n'avez pas besoin d'utiliser la boucle. Lisez également ce qui concerne les notions de mutable et d'immuable.
0 votes
Veuillez voter pour la fonctionnalité de mise à jour conditionnelle de l'ensemble des paramètres HttpParams : github.com/angular/angular/issues/26021