【发布时间】:2016-04-27 19:43:17
【问题描述】:
我有 3 个组件(get-users、get-projects、get-tasks)——每个组件都包含一个按钮,用于触发 ajax 请求以检索一些数据。我希望从 ajax 请求返回的数据显示在页面上的第四个独立组件(显示结果)中。例如
<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>
获取用户组件:
<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>
Vue 实例/声明
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 },
})
由于 show-results 组件不是父/子关系的一部分,我不能使用 API 的 $broadcast 或 $dispatch 方法。
是否可以在 ajax 承诺完成时将数据从一个组件传递到另一个组件?
【问题讨论】:
-
它们是否都在同一个根 Vue 实例中?
-
是的,他们是。我已经编辑了原始帖子以显示 Vue 声明。
标签: vue.js