2016-04-11 15 views
1

Ich möchte eine Zeichenfolge in einem Ausdruck in Angular2 verbinden, obwohl dies nicht möglich scheint. (Insbesondere im attr.href des einen Tages.Angular2 Join-Zeichenfolge in Ausdruck

Zum Beispiel davon ausgehen, dass ich eine URL aus '/ page/id' habe, und die ID wird in einer Variablen gespeichert.

<a [attr.href]="/page/{{id}}">link</a> 

Das wird nicht funktionieren, weil wir nicht {{}} Syntax in einem Ausdruck verwenden können

ich bin nicht sicher, wie ich über den Beitritt hier Strings gehen würde

+0

haha ​​zu schnell beide @Gunter und @ Thierry für die Antwort. Abgesehen von der Antwort finden Sie hier Erläuterungen zum Einsatz von '{{}}' und '[]' property binding http://stackoverflow.com/a/36528964/5043867 –

+0

Sie brauchen in diesem Fall nicht 'attr'. Siehe meine aktualisierte Antwort. –

+0

Ja, sie waren erstaunlich schnell! –

Antwort

8

Sie könnten versuchen, dieses:..

<a [attr.href]="'/page/' + id">link</a> 

Da in diesem Fall keine Interpolation verwendet werden kann (wegen [...]). Angular2 wird versuchen, den Ausdruck auszuwerten, und Sie können hier einen durch Anführungszeichen begrenzten String-Wert verwenden.

+0

Dies löste das Problem, danke! Ich muss einige Minuten warten, bevor ich dies als die richtige Antwort akzeptieren kann :) –

3

Sie nicht [...] und {{..}} zusammen verwenden können entweder

<a attr.href="/page/{{id}}">link</a> 

oder

<a [attr.href]="'/page/' + id">link</a> 

Es besteht keine Notwendigkeit für attr weil die href Eigenschaft auf die automatisch href Attribut reflektiert (Plunker example).

<a href="/page/{{id}}">link</a>