2017-05-22 4 views
1

Hallo Ich versuche herauszufinden, was die effizienteste Möglichkeit ist, einen Ajax-Anruf im Elternteil einer Vue App zu machen und es an die Kinder weiterzugeben, wo ich den ganzen Erfolg einstellen kann und Fehlermethoden innerhalb des Kindes. Jedes Kind wird den Erfolg anders behandeln, aber ich möchte, dass das Kind weiß, wann ein Anruf läuft, wann es abgeschlossen ist, gescheitert ist usw. Was ist der beste Weg, dies zu tun?Vue.js Ajax Anruf in Eltern

+0

Was verwenden Sie, um den Anruf zu tätigen? Gibt es ein Versprechen zurück? Sie können Versprechen als Requisiten übergeben. –

Antwort

0

Sie vue-resource verwenden Angenommen, Ihr Code wie dieser

parent.vue

<script> 
export default { 
    methods : { 
    makeCall() { 
     var that = this; 

     // Do something while the API call is in progress. 

     this.$http.get('/somecall').then(
      that.$refs.child.success, // Success 
      that.$refs.child.failure // Failure 
     ); 
    } 
    } 
} 
</script> 
sich

child.vue

<script> 
export default { 
    methods : { 
     success(res) { 
     // Do something here 
     }, 
     failure(res) { 
     // Do another thing here 
     } 
    } 
} 
</script> 

Beachten Sie, dass ich das Bestehen der Kind-Komponente Funktionen aussehen könnte, anstatt die Ausführung Sie.

Wenn Sie

console.log(myFunction()) 

tun Sie was auch immer Wert myFunction Renditen.

Wenn Sie das tun

console.log(myFunction) 

Sie eine Funktion zurück.

+0

Schön. Wie aber schicke ich zB bestimmte Kinder, wenn ich das mit 3 meiner 5 Kinder machen möchte. – KingKongFrog

+0

Können sagen, Sie eine Reihe von Kinder haben 'var childrenNames = [‚child1‘,‚child2‘,‚child3‘]' Sie können Erfolg/Mißerfolg Methoden von jedem oder einige von ihnen wie diese 'dies passieren . $ refs [childrenNames [2]]. success' oder 'this. $ refs [childrenNames [3]]. failure' An dieser Stelle ist dies wirklich nur eine Javascript-Frage und nicht nur Vuejs. –

+0

Das ist großartig. Wie würden Sie mit dieser Struktur das Senden einer Variablen empfehlen, die definiert, in welchem ​​Zustand sich der Anruf befindet. Zum Beispiel möchte ich ein Symbol für den laufenden Vorgang anzeigen, wenn Daten für alle bestimmten untergeordneten Elemente abgerufen werden. – KingKongFrog