2017-02-22 1 views
2

Ich entwickle meine erste Angular App und habe einige Probleme mit der Datenbindung.Angular 2: Datenbindung mit Funktionsaufruf

Ich habe eine Komponente, die das folgende Element enthält:

`<span>{{action.getText()}}</span>` 

Aktion ist vom Typ Aktion, die die folgende Methode hat:

getText(): String { return "Test"; } 

Die variable Aktion korrekt definiert ist, da I Eigenschaften zugreifen über {{}} ohne ein Problem. z.B. {{action.title}}

Also meine Frage ist, ist das überhaupt möglich, um auf diese Funktion zuzugreifen und wenn ja, was mache ich falsch?

+1

Wie sieht 'Aktion' aus? Ich verwende normalerweise 'string' Datentyp nicht' String' –

+0

Versuch mit einem propery Getter 'get text() {return" Test "; } 'und' {{action.text}} '. Nur funktionieren, wenn das Aktionsobjekt aus der ts-Datei Ihrer Komponente oder aus einer lokalen Variablen stammt, die mit dem Tag # definiert wurde. –

+0

@ MaximeGélinas Ich habe jetzt 'Get Text() {Rückkehr" Test ";}' und '{{action.text}}' in meiner Komponente. Aber es wird jetzt kein Text angezeigt (zumindest stürzt es nicht mehr ab). Die Variable Aktion ist in der zugehörigen Komponentendatei – Luca

Antwort

3

Man könnte es auf eine Eigenschaft konvertieren:

get text(): string { return "Test"; } 

Ihre Vorlage wird:

<span>{{ation.text}}</span> 
+0

Scratch das. Sie können in eine Eigenschaft konvertieren, aber die Bindung an ein Funktionsergebnis funktioniert tatsächlich wie erwartet. –

+0

Jetzt zeigt es überhaupt nichts wo die '' sollte – Luca

+0

Anything in der Konsole sein? –

0

Sie auf action.title beziehen, aber ation.getText(). Sicher ein Tippfehler?

<span>{{action.getText()}}</span> 
+0

'ation' ist ein Tippfehler, den ich jetzt korrigiert habe. Der Verweis auf "action.title" sollte nur zeigen, dass die Variable korrekt definiert ist, da ich auf diese Eigenschaft zugreifen kann. – Luca

Verwandte Themen