【发布时间】:2018-08-31 21:40:50
【问题描述】:
我有一个选择组件。我有一个输入组件。更改选择组件时,我需要.Select()输入组件。这是两个不相关的组件,即主 Vue 实例的兄弟姐妹。
这两个组件都由模板组成,因此根据文档https://vuejs.org/v2/guide/components.html#Child-Component-Refs,使用 ref 属性不是一个选项
我该怎么做呢?我在 codepen 中编写了一个简单的示例- https://codepen.io/anon/pen/MVmLVZ
HTML
<div id='my-app'>
<some-select></some-select>
<some-input></some-input>
</div>
<script type="text/x-template" id="vueTemplate-some-select">
<select @change="doStuff">
<option value='1'>Value 1</option>
<option value='2'>Value 2</option>
</select>
</script>
<script type="text/x-template" id="vueTemplate-some-input">
<input ref='text-some-input' type='text' value='Some Value'/>
</script>
Vue 代码
Vue.component('some-input', {
template: `#vueTemplate-some-input`
});
Vue.component('some-select', {
methods: {
doStuff: function() {
// Do some stuff
//TODO: Now focus on input text field
//this.$refs['text-some-input'].focus(); // Cant use refs, refs is empty
}
},
template: `#vueTemplate-some-select`
});
var app = new Vue({
el: '#my-app'
});
【问题讨论】:
标签: javascript vue.js vue-component