0

Ich habe Projektstruktur wiePolymer 1.x: rufen Funktionen zwischen Eisen-Seiten und Daten übergeben, wenn role = "main"

<my-app></my-app> //in index.html 

und in my-app.html I Eisen-Seite haben, im Inneren I haben 3 Komponenten

<iron-pages selected="0" role="main"> 
    <my-page1></my-page1> 
    <my-page2></my-page2> 
    <my-page3></my-page3> 
</iron-pages> 

Wie rufen Sie eine Funktion zusammen mit Parameter in my-page2.html von my-page1.html?

Die Methode, die ich jetzt verwende, ist ein Attribut zu beiden Seiten mit notify:true für aufwärts Datenfluss in my-page1.html und Hinzufügen eines Beobachters zu diesem Attribut in der zweiten Komponente, also wenn ich zuweisen der Beobachter wird anrufen!

<iron-pages selected="0"> 
    <my-page1 data-prop1={{dataProp1}}></my-page1> 
    <my-page2 data-prop2=[[dataProp1]]></my-page2> 
    <my-page3></my-page3> 
</iron-pages> 

hier für Daten-prop2, ich werde einen Beobachter hinzufügen, damit, wenn ich Daten zuordnen für Daten-PROP1 in my-page1.html Beobachter in my-page2.html gecallt

Meiner Meinung das ist nicht die richtige Methode! so this.fire kann nur verwendet werden, um eine Funktion von Kind zu Eltern auszulösen, also, wenn ich bestimmte Funktion zwischen den Komponenten oder Kind Geschwister kommunizieren muss, was ich tun sollte?

Antwort

0

Kommunikation über Datenmodell ist die empfohlene Methode. (Lassen Sie mich holen Sie verweisen, später.)

Es ist auch Rob empfohlen zu sehen über Bewegung unidirektionale Datenfluss sprechen, https://www.youtube.com/watch?v=iJ9hS54BRag#t=11m7s

+0

können Sie mir nur ein Beispiel zeigen !! –

0

Was i tue, mit querySelector eine Instanz der Seite und Anruf zu bekommen die Methode darin.

wie folgt:

var myPage2 = null; 
myPage2 = document.querySeletor('my-page2'); 
// Now call your function from here 
myPage2.yourFunction(param1, param2); 

`

und Ihre my-page2 die yourfunction Funktion haben.

Verwandte Themen