Ich habe 3 Komponenten (Get-Benutzer, Get-Projekte, Get-Aufgaben) - jede enthält eine Schaltfläche, die eine Ajax-Anfrage zum Rereiven einiger Daten auslöst. Ich möchte, dass die von der Ajax-Anfrage zurückgegebenen Daten in einer vierten unabhängigen Komponente auf der Seite angezeigt werden (Show-Ergebnisse). z.B.Wie kann ich Daten zwischen Nicht-Eltern-Kind-Komponenten in Vue teilen
<div class="row">
<div class="col-md-6>
<get-users></get-users>
<get-projects></get-projects>
<get-tasks></get-tasks>
</div>
<div class="col-md-6>
<show-results></show-results>
</div>
</div>
Die get-Benutzer-Komponente:
<script>
export default {
template: require('./get_users.template.html'),
data: function() {
return {
userList: ''
}
},
methods: {
getUsers(e) {
e.preventDefault();
this.$http.get('api/getusers').then(function (response) {
this.userList = response.data.users; // How can I also pass this to the show-results component?
})
}
}
}
</script>
Die Vue Instanz/decalaration
var Vue = require('vue');
Vue.use(require('vue-resource'));
import getUsers from './components/get_users.vue';
import getProjects from './components/get_projects.vue';
import getTasks from './components/get_tasks.vue';
import showResults from './components/show_results.vue';
new Vue ({
el: '#app',
components: { GetUsers, GetProjects, GetTasks, ShowResults },
})
Als Show-Ergebnisse Komponente ist kein Teil eines Eltern/Kind-Beziehung I kann die $ broadcast- oder $ dispatch-Methoden der API nicht verwenden.
Ist es möglich, die Daten nach Abschluss des Ajax-Versprechens von einer Komponente zur anderen zu übertragen?
sie sind beide innerhalb der gleichen Wurzel Vue-Instanz? – nils
Ja, das sind sie. Ich habe den ursprünglichen Beitrag bearbeitet, um die Vue-Deklaration anzuzeigen. –