Ich habe eine App, in der ich eine Upload-Komponente habe, in die ich eine Datei hochladen kann. Es ist eingebettet in die body.component
.
Beim Hochladen sollte eine Funktion (z. B. BodyComponent.thefunction()
) der übergeordneten Komponente verwendet werden (Aufruf zum Aktualisieren der Daten): jedoch nur, wenn es sich bei der übergeordneten Komponente speziell um die handelt body.component
. Der Upload kann auch an anderer Stelle mit unterschiedlichem Verhalten verwendet werden.
So etwas wie parent(this).thefunction()
, wie geht das?
angular2/core
. Konsolenprotokoll zeigt ein Problem mit Angular2-Polyfills@Ouput
statt@Output
. Es könnte das Problem sein ... Ich habe meine Antwort aktualisiert.uploadComplete is not defined
ich einen Hinweis, dass ich diese nur als Beispiele kopiert habe. Das übergeordnete Element hat ebenfalls "someMethod", hat jedoch bereits ein Problem mituploadComplete
. Die übergeordnete Komponente verwendet die (hochgeladene) Bindung auf dem untergeordneten Knoten und hatte das untergeordnete Element bereits als Direktive.Unten wird für mich spätestens gearbeitet
Angular5
In
ParentTemplate
der Vorlagequelle
Lösung ohne Ereignisse.
Angenommen, ich habe ein
ChildComponent
und von diesem möchte ich die Methode aufrufen,myMethod()
die dazu gehörtParentComponent
(wobei der Kontext des ursprünglichen Elternteils beibehalten wird).Übergeordnete Komponentenklasse:
Übergeordnete Vorlage:
Untergeordnete Vorlage
quelle
this.myMethod.bind(this)
es zurückgegeben wird. (Möglicherweise mache ich stattdessen etwas grundlegend Falsches.)Sie können die übergeordnete Komponente in die untergeordnete Komponente einfügen.
Weitere Informationen finden Sie unter
- Wie füge ich eine übergeordnete Komponente in eine untergeordnete Komponente ein?
- Die untergeordnete Komponente von Angular 2 bezieht sich auf die übergeordnete Komponente. Auf diese Weise können Sie sicherstellen, dass sie
thefunction()
nur aufgerufen wird, wenn die übergeordnete Komponente a istbody.component
.Andernfalls wird die Verwendung
@Output()
bevorzugt, um vom Kind zum Elternteil zu kommunizieren.quelle
constructor(@Host() bodyComp: BodyComponent)
.. vielleicht wurde es vor kurzem geändert. Funktioniert super, danke!