两个组件A,B,分别从后端接口各自获取数据,A使用数据填充一个下拉列表(a.name的集合),B根据A中下拉列表选择的值(a.id),请求另一个接口填充数据
A.vue
<template>
<div>
<select>
<option v-for="a in as">{{ a.name }}</option>
</select>
</div>
</template>
B.vue
<script>
import A from '../product/A'
export default {
'name': 'a',
data() {
return {
as: []
};
},
created: function() {
var url = 'http://*/{{ a.id }}';
this.$http.get(url, {}, {
emulateJSON: true
})
.then(function(response) {
console.log(response);
this.as = response.data.data;
}, function(response) {
console.log(response)
});
},
components: {
'a': A
}
}
</script>
如上,怎么把A中selected选中的值(id)传给B中http-get的参数,求help
(A是想做一个通用的,因为在其它vue文件中也希望复用)
A 中的 select 加 v-model,并且添加 watcher,使得数据发生变化时 $emit 一个自定义的 change 事件,然后在 B 中使用 A 的地方绑定事件响应即可。
A 在 B 里面,没法通过 props 传递数据到 B,并且仅仅传递数据是不够的,还需要将数据变化通知到 B。另外,既然 A 的结构是这么简单,为什么不直接放 select 元素在 B 里面呢?
或者参考 https://vuejs.org/v2/guide/co... 实现 v-model
又及,A 中的 option 没有值绑定哦