2017-01-05 1 views
1

J'utilise un paramètre « UnitID » pour obtenir des données pour ce numéro d'identification unité particulière en utilisant le code suivant:Comment faire correspondre les paramètres url exacts passés dans l'API web en mémoire dans Angular2?

this.unitDetailsService.getUnitDetailsbyId(this.activeUnitId) 

J'utilise ce paramètre activeUnitId pour construire une URL à utiliser dans en mémoire service à l'aide du code ci-dessous :

const url = `${this.unitDetailsUrl}/?unit_id=${unitId}`; 

Je suis obtenir les résultats souhaités pour les valeurs id unitaires comme 1.1, 2.1, 3.1, 3.2 etc. Cependant, je suis d'obtenir des résultats indésirables pour les valeurs id unitaires comme 1, 2, 3 etc. pour l'unité id 1, j'obtiens toutes les valeurs qui sont liées à 1, 1.1, 2.1, 3.1. De même pour l'identifiant d'unité 2, le résultat consiste en 2, 2.1, 2.2, 3.2. pour l'identifiant d'unité 3, il est 3, 3.1, 3.2, 3.3, 3.4.

Je pense qu'il correspond à toutes ces valeurs qui consiste à transmettre l'identifiant d'unité plutôt que de correspondre à l'URL exacte. Quelqu'un peut-il m'aider à faire un match exact?

+0

Il est difficile de comprendre ce que vous essayez de faire. Où est l'appariement? – John

+0

Je veux dire quand je passe unitId = 1, je devrais obtenir le résultat de api correspondant seulement à unitId = 1. Pour l'instant, je reçois tous les résultats liés à 1, 1.1, 2.1, 3.1 etc. il. –

+0

à quoi ressemble votre algorithme correspondant sur l'API? Cela devrait être une méthode similaire à 'equals (unitId)' au lieu de 'match (unitId)', car "2.1", "3.1" et "1" correspondent tous à "1". Cependant, 'equals (unitId)' ne retournera que les résultats avec le 'unitId' que vous donnerez à l'API. Pouvez-vous fournir votre code api? – John

Répondre

1

Je vois. Je suppose que ${unitId} sera remplacé par ex. 1. Essayez d'ajouter^et $ à la fin comme celui-ci

${this.unitDetailsUrl}/?unit_id=^${unitId}$

par exemple detailedUrl/?unit_id=^1$

La bibliothèque utilisent les paramètres comme si elle était une expression régulière. Ajouter^signifie regarder le début de la chaîne et $ signifie la fin de la chaîne. Passer 1, ne correspondra alors qu'à 1, pas à 2.1 ou 3.1

+1

Génial! C'est exactement ce que je cherchais. Merci –