从vue组件中显示所选选项的数据
display data from selected option from vue component
如何显示所选选项的数据,就像在docs vuejs.org的例子中一样,但有组件?
<div id="app">
<selection></selection>
<div v-if="post">
selected post:
{{post.title}}
</div>
<div v-else>
no posts
</div>
</div>
main.js
Vue.component('selection', {
template: "<select v-model='post'><option v-for='post in posts' v-bind:value='post.val'>{{post.title}}<option></select>",
data: function() {
return {
posts: [{
title: "lorem ipsum 1", val: '1' }, {
title: "lorem ipsum 2", val: '2' }, {
title: "lorem ipsum 3", val: '3' }
],
post: null
}
},
})
new Vue({
el: "#app",
data: {
post: null
}
}).$mount('#app')
小提琴
你可以通过实现两个特性来让你的组件使用v-model指令:
- 接收
value
道具 - 发出一个具有新值 的
input
事件首先,更改模板,将select
标记绑定到整个post
对象(不仅仅是val属性):
template: "<select v-model='post'><option v-for='post in posts' v-bind:value='post'>{{post.title}}<option></select>"
声明你的组件有一个'value'属性:
props: ['value']
现在watch
组件的post
属性,并发出一个input
事件与选定的post:
watch: {
post: function() {
this.$emit('input', this.post);
}
}
然后你只需在你的自定义组件上使用v-model
指令:
<selection v-model="post"></selection>
下面是一个完整的jsFiddle,显示了它的作用。
相关文章:
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 正在获取所选选项数据
- 如何放置'选择'基于angularJS中数据的html选项
- 使用JavaScript在IE9中获取数据列表选项
- 在php和mysql中选择选项.一旦选择了选项,就列出我的sql数据库数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 使用jquery在选择框中的选项中填充数据
- 选项中包含数据的自定义标记
- AngularJS:点击选项卡刷新视图中的数据
- 在dojo中将数据从一个选项卡绑定到另一个选项卡(打开选项卡?)
- 只有当Angular从资源对象检索数据时,才选择选项元素
- 使用jQuery在select选项上设置HTML数据属性
- 语义UI下拉选项数据属性
- 纯 JS 获取所选选项数据属性值返回 Null
- 对大型“选项”数据结构进行微小更改
- 如何在“if”语句中比较<选项>“数据名称”
- 选择选项数据绑定值
- 在网站服务器上存储表单/输入/用户首选项数据有哪些不同的方法?
- 选项数据更改的下拉事件
- 使用Jquery或javascript获取选中的选项数据