Установите значение по умолчанию в меню выбора опций

Я хочу привязать настраиваемый атрибут к меню выбора опций. Тег <option> имел бы просто атрибут selected="selected"

<template>
  <div>
    <select>
      <option v-for="" v-bind:selected="[condition ? selected : notSelected]" value="">{{ resource.xprm_name }}</option>
    </select>
  </div>
</template>

data: {
  selected: "selected",
  notSelected: ""
}

Это не сработает, но если я изменю v-bind:selected для v-bind:class то он получит соответствующий класс, поэтому логика работает, но не с selected атрибутом.

Любой способ заставить его работать с такими пользовательскими атрибутами?

Ответы

Ответ 1

Вы можете просто использовать v-model для выбора значения по умолчанию в поле выбора:

Разметка:

<div id="app">
  <select v-model="selected">
     <option value="foo">foo</option>
     <option value="bar">Bar</option>
     <option value="baz">Baz</option>
  </select>
</div>

Модель:

new Vue({
  el: "#app",
  data: {
    selected: 'bar'
  }
});

Здесь JSFiddle: https://jsfiddle.net/Lxfxyqmf/

Ответ 2

HTML:

<div id="myComponent">
    <select v-model="selectedValue">
        <option 
            v-for="listValue in valuesList" 
            :selected="selectedValue == listValue.id"
            :value="listValue.id"
        >
            @{{listValue.name}}
        </option>
    </select>
    <span>Chosen item: @{{ selectedValue }}</span>
</div>

ЯШ:

var app = new Vue({
    el: '#myComponent',
    data: {
        selectedValue: 2,
        valuesList: [
            {name: 'One', id: 1},
            {name: 'Two', id: 2},
            {name: 'Three', id: 3},
        ]
    },