在一个vue实例中具有多个数据的类似组件
Similar components with multiple data in one vue instance
一页的组件基本相似,但填充了个别数据,组件来自 Element-UI
var Main = {
data() {
return {
options: [{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
},
],
value: '',
optionss: [{
values: 'bKash',
label: 'bKash',
},
{
values: 'Rocket',
label: 'Rocket',
},
{
values: 'Bank A/C',
label: 'Bank A/C',
},
],
values: '',
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css");
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.11.1/lib/index.js"></script>
<div id="app">
<template>
<div>
<el-select v-model="value" placeholder="Select Account">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<br/><br/>
<div>
<el-select v-model="values" placeholder="Select Account">
<el-option
v-for="item in optionss"
:key="item.values"
:label="item.label"
:values="item.values">
</el-option>
</el-select>
</div>
</template>
</div>
一个组件工作正常,但 select 上的其他组件不工作,但数据填充正确,为什么?
消息错误很明显,您在第二个组件中遗漏了值,您在 el-option
中编写了 :values
而不是 :value
,但是标签没问题,因此该组件可以填充标签而不是值。
var Main = {
data() {
return {
options: [{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
},
],
value: '',
optionss: [{
value: 'bKash',
label: 'bKash',
},
{
value: 'Rocket',
label: 'Rocket',
},
{
value: 'Bank A/C',
label: 'Bank A/C',
},
],
values: '',
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css");
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.11.1/lib/index.js"></script>
<div id="app">
<template>
<div>
<el-select v-model="value" placeholder="Select Account">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
value= {{value}}
</div>
<br/><br/>
<div>
<el-select v-model="values" placeholder="Select Account">
<el-option
v-for="item in optionss"
:key="item.values"
:label="item.label"
:value="item.value"> <!-- here was the error -->
</el-option>
</el-select>
values = {{values}}
</div>
</template>
</div>
一页的组件基本相似,但填充了个别数据,组件来自 Element-UI
var Main = {
data() {
return {
options: [{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
},
],
value: '',
optionss: [{
values: 'bKash',
label: 'bKash',
},
{
values: 'Rocket',
label: 'Rocket',
},
{
values: 'Bank A/C',
label: 'Bank A/C',
},
],
values: '',
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css");
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.11.1/lib/index.js"></script>
<div id="app">
<template>
<div>
<el-select v-model="value" placeholder="Select Account">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<br/><br/>
<div>
<el-select v-model="values" placeholder="Select Account">
<el-option
v-for="item in optionss"
:key="item.values"
:label="item.label"
:values="item.values">
</el-option>
</el-select>
</div>
</template>
</div>
一个组件工作正常,但 select 上的其他组件不工作,但数据填充正确,为什么?
消息错误很明显,您在第二个组件中遗漏了值,您在 el-option
中编写了 :values
而不是 :value
,但是标签没问题,因此该组件可以填充标签而不是值。
var Main = {
data() {
return {
options: [{
value: 'Option1',
label: 'Option1',
},
{
value: 'Option2',
label: 'Option2',
},
{
value: 'Option3',
label: 'Option3',
},
],
value: '',
optionss: [{
value: 'bKash',
label: 'bKash',
},
{
value: 'Rocket',
label: 'Rocket',
},
{
value: 'Bank A/C',
label: 'Bank A/C',
},
],
values: '',
}
}
}
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.11.1/lib/theme-chalk/index.css");
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.11.1/lib/index.js"></script>
<div id="app">
<template>
<div>
<el-select v-model="value" placeholder="Select Account">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
value= {{value}}
</div>
<br/><br/>
<div>
<el-select v-model="values" placeholder="Select Account">
<el-option
v-for="item in optionss"
:key="item.values"
:label="item.label"
:value="item.value"> <!-- here was the error -->
</el-option>
</el-select>
values = {{values}}
</div>
</template>
</div>