programing

기본값을 옵션 선택 메뉴로 설정

prostudy 2022. 5. 28. 09:05
반응형

기본값을 옵션 선택 메뉴로 설정

사용자 지정 특성을 옵션 선택 메뉴에 바인딩합니다.<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기여하다.

그런 커스텀 속성으로 작동시킬 수 있는 방법이 있나요?

그냥 사용하시면 됩니다.v-model[ Select ]박스에서 기본값을 선택합니다.

마크업:

<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/

html:

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

js:

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

상위 컴포넌트에 modelValue를 제공하는 재사용 가능한 셀렉트 컴포넌트를 작성했습니다.

첫 번째 옵션태그를 보시면 소품을 사용하여 기본값을 작성하는 방법을 알 수 있습니다.

Base Select.vue(자체 컴포넌트)

<template>
  <label v-if="label">{{ label }}</label>
  <select
    class="field"
    :value="modelValue"
    v-bind="{
      ...$attrs,
      onChange: ($event) => {
        $emit('update:modelValue', $event.target.value);
      },
    }"
  >
    <option value="" disabled>{{ defaultValue }}</option>
    <option
      v-for="option in options"
      :key="option"
      :value="option"
      :selected="option === modelValue"
    >
      {{ option }}
    </option>
  </select>
</template>

<script>
export default {
  props: {
    label: {
      type: String,
      default: ""
    },
    defaultValue: {
      type: String,
      default: "Select an item of the list",
      required: false
    },
    modelValue: {
      type: [String, Number],
      default: "Otros"
    },
    options: {
      type: Array,
      required: true
    },
  },
};
</script>

상위 컴포넌트

<BaseSelect
      label="Asunto"
      defaultValue = "Selecciona un asunto" 
      v-model="contactValues.asunto"
      :options="asuntos"
    />

data()(v-model)에서 이 값을 올바르게 수신해야 합니다.

새로운 구성 API 사용:

<template>
     <select v-model="selectValue">
         <option value="a">
             Option a
         </option>
         <option value="b">
             Option b
         </option>
      </select>
</template>

<script>
import { ref } from 'vue';

export default {
    setup() {
        // Create a reactive value for our select
        const selectValue = ref('a');

        // Return to the template
        return { selectValue };
    },
};
</script>

언급URL : https://stackoverflow.com/questions/41122028/set-default-value-to-option-select-menu

반응형