Angular 2 Input-Bindung funktioniert nicht [duplizieren]

8

index.html:

%Vor%

app.component.ts:

%Vor%

JS Konsole sagt undefined. Wie kann ich Variablen von .html Datei erhalten, um es an die Komponente zu senden?

    
Rattrap 21.09.2016, 10:49
quelle

3 Antworten

12

Aktualisieren

  

Der Grund, warum das nicht funktioniert, ist, dass Ihre index.html in welcher   Du platzierst das ist kein eckiges   Komponente. Aus diesem Grund wird Angular dieses Element nicht kompilieren. Und   Angular liest Attributwerte zur Laufzeit nicht, nur während   Kompilierzeit, da wir sonst einen Performance-Hit bekommen würden.

Ссылка

Dies wird tun, was Sie wollen:

index.html

%Vor%

Root-Komponente

%Vor%

Auch wenn Sie Daten als Objekt übergeben möchten, können Sie sich diese Frage ansehen

Original

Wenn Sie Daten als Text übergeben möchten, sollte es

sein %Vor%

oder

%Vor%     
yurzui 21.09.2016 10:56
quelle
2

WICHTIG

  

Ich habe unten erklärt, was mit Ihrer Bindung falsch ist, aber selbst wenn Sie den von mir bereitgestellten Code verwenden, wird es nicht funktionieren, weil Sie versuchen, eine Eingabe an die Komponente zu übergeben, die Sie bootstrappen (Root-Komponente).

Wenn Sie die Zeichenfolge some_name an die Eingabevariable myname übergeben möchten, sollten Sie dies ohne [] :

tun %Vor%

Wenn Sie es mit [] wie Sie getan haben, sucht es in Ihrer Komponente nach der Variable some_name , die Sie nicht haben. Deshalb erhalten Sie in Ihrer Konsole undefined .

    
Stefan Svrkota 21.09.2016 10:58
quelle
1

Es ist zugänglich in und nach dieser Veranstaltung:

ngOnInit() { ... here ... }

und wie die anderen bereits erwähnt .. wenn Sie die [myname]="variable or expression()" -Syntax verwenden, muss innerhalb der "" eine Variable oder ein Ausdruck Ihrer Komponente sein ..

Wenn Sie diese Syntax myname="anyStringHere" verwenden, können Sie nur eine Zeichenkette dort einfügen.

    
mxii 21.09.2016 11:22
quelle

Tags und Links