2017-01-06 2 views
1

Je suis en train de construire une application Angular 2 avec routage. J'ai un lien dans mon modèle qui ressemble à ceci:tapuscrit angular2 template queryParams

<a href="#" [routerLink]="['/Foo']" [queryParams]="{page:1+curr}">Next</a> 

Dans ma classe de composants curr est défini comme

curr: number = 0 

Je veux l'URL lié à être

/Foo?page=1 

au lieu de cela, il semble que les 1 et curr sont en cours de concaténation et l'URL est

/Foo?page10 

Des idées?

+0

Votre code fonctionne bien ...? Je l'ai testé, il ajoute 1 et curr correctement. – 12seconds

Répondre

0

Essayez ce code

<a href="#" [routerLink]="['/Foo']" [queryParams]="{page:'1'+curr}">Next</a> 
+0

Je l'ai essayé et j'obtiens le même résultat '/ Foo? Page = 10' –

+0

oui, c'était le résultat attendu –

0

Le problème est que même si curr a été déclarée curr: number = 0 il a été plus tard asigned à une variable de retour via AJAX qui est arrivé à être une chaîne

curr = data.current // current is a string 

I Je m'attendais à ce que le transpilateur m'attrape, mais je ne courais pas une verstion de charpie. Par conséquent, lorsque vous essayez d'ajouter une chaîne et un nombre, le nombre est forcé dans une chaîne et le résultat est une concaténation.