使用 Vue.js 和 Minimalect 在 HTML select 中显示默认值
Display a default value in HTML select using Vue.js and Minimalect
我正在使用 Vue.js 和 Mininmalect HTML select 插件来按名称和值显示国家列表(值是 2 位国家代码)。
我在 select 一个国家/地区使用该插件时可以正常工作。它将值添加到 selected
状态。
我无法解决的是如何显示一个 value/country 当已经有一个处于状态时(即在页面加载时来自数据库)。
这是我的:
<template>
<select name="country" v-model="country">
<option v-for="country in countries" value="{{ country.value }}">{{ country.label }}</option>
</select>
</template>
<script>
export default {
data() {
return {
selected: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
$('select').minimalect({
onchange: function(value) {
vm.selected = value;
}
});
}
};
</script>
我正在努力让 select
属性出现,即 <option value="GB" selected>United Kingdom</option>
所以在加载页面时有一个默认值。
你有 v-model="country"
,所以如果你只是将 country
的值设置为数据库值,select 将自动设置为该值。
data() {
return {
country: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
$('select').minimalect({
onchange: function(value) {
vm.country = value;
},
afterinit: function() {
$('select').val(vm.country).change();
}
});
}
将您的 v-model
更改为 selected
。而且我认为您的问题是性能问题。为您的函数添加一个 setTimeout
。
<template>
<select name="country" v-model="selected">
<option v-for="country in countries" value="{{ country.value }}">{{ country.label }}</option>
</select>
</template>
<script>
export default {
data() {
return {
selected: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
setTimeout(function(){
$('select').minimalect({
onchange: function(value) {
vm.selected = value;
}
});
});
}
};
</script>
我正在使用 Vue.js 和 Mininmalect HTML select 插件来按名称和值显示国家列表(值是 2 位国家代码)。
我在 select 一个国家/地区使用该插件时可以正常工作。它将值添加到 selected
状态。
我无法解决的是如何显示一个 value/country 当已经有一个处于状态时(即在页面加载时来自数据库)。
这是我的:
<template>
<select name="country" v-model="country">
<option v-for="country in countries" value="{{ country.value }}">{{ country.label }}</option>
</select>
</template>
<script>
export default {
data() {
return {
selected: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
$('select').minimalect({
onchange: function(value) {
vm.selected = value;
}
});
}
};
</script>
我正在努力让 select
属性出现,即 <option value="GB" selected>United Kingdom</option>
所以在加载页面时有一个默认值。
你有 v-model="country"
,所以如果你只是将 country
的值设置为数据库值,select 将自动设置为该值。
data() {
return {
country: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
$('select').minimalect({
onchange: function(value) {
vm.country = value;
},
afterinit: function() {
$('select').val(vm.country).change();
}
});
}
将您的 v-model
更改为 selected
。而且我认为您的问题是性能问题。为您的函数添加一个 setTimeout
。
<template>
<select name="country" v-model="selected">
<option v-for="country in countries" value="{{ country.value }}">{{ country.label }}</option>
</select>
</template>
<script>
export default {
data() {
return {
selected: 'GB',
countries: require('../utilities/countries.js'),
}
},
ready() {
var vm = this;
setTimeout(function(){
$('select').minimalect({
onchange: function(value) {
vm.selected = value;
}
});
});
}
};
</script>