我在某些类型的 html 元素上初始化 Vue 时遇到问题,请查看以下代码:
new Vue({
el: '#app',
data: {
test: ''
}
})
<script src="https://unpkg.com/vue"></script>
<div id="app">
Without Vue:
<!-- Non-Vue select defaults to selected value -->
<select>
<option>1</option>
<option selected>2</option>
<option>3</option>
</select>
<br />
<br />
With Vue:
<!-- Vue enabled list loses selection -->
<select v-model="test">
<option>1</option>
<option selected>2</option>
<option>3</option>
</select>
</div>
当我启动 Vue 时,您声明 v-Modal 的任何“选择”似乎都会失去其选择的值。如文档中所述:
v-model 将忽略在任何表单元素上找到的初始值、选中或选定属性。它将始终将 Vue 实例数据视为事实来源。您应该在组件的 data 选项内声明 JavaScript 端的初始值。
现在我可以做到这一点,但是对于每个选择,我现在需要在 Vue 之外编写一些 JS 来填充/重新填充选择的默认值(通过填充“数据”属性,或在 Vue 减速后重新选择先前选择的值)。
有没有更简单的方法来做到这一点?也许某种选项或标签我可以提供给 Vue 以“持久”从 HTML 控件的初始状态继承的值?