Получение свойств элемента из выпадающего списка в Vue.Js - PullRequest
0 голосов
/ 02 января 2019

Я изо всех сил пытаюсь вывести одно из свойств объекта (SKU) из элемента, выбранного в раскрывающемся списке.Я попробовал несколько вариантов безуспешно.

Как получить доступ к одному из свойств объекта, если я не отображаю его (не использую выражение) в раскрывающемся списке.По сути, как мне показать SKU предмета вне выпадающего списка?

<select v-model="selected">
<option v-for="option in options" v-bind:value="option.value">
    {{ option.text }}
</option>
</select>
<span>Selected: {{ selected }}</span>
<p>The SKU of your selected item is {{ selected.sku }}</p>

new Vue({
el: '...',
data: {
    selected: 'A',
    options: [
    { text: 'One', value: 'A', sku:'TT5' },
    { text: 'Two', value: 'B', sku:'BB8' },
    { text: 'Three', value: 'C', sku:'AA9' }
    ]
}
})

1 Ответ

0 голосов
/ 02 января 2019

Попробуйте связать весь объект с вашим элементом option следующим образом:

<option v-for="option in options" v-bind:value="option">

таким образом вы можете получить доступ к его свойствам, таким как:

  <span>Selected: {{ selected.value }}</span>
  <p>The SKU of your selected item is {{ selected.sku }}</p>

Поскольку вам необходимо передать свойство value бэкэнду, вы можете использовать вычисленное свойство, чтобы получить выбранный объект на основе выбранного значения:

Vue.config.devtools = false;
Vue.config.productionTip = false;

new Vue({
  el: '#app',
  data: {
    selectedVal: 'A',

    options: [{
        text: 'One',
        value: 'A',
        sku: 'TT5'
      },
      {
        text: 'Two',
        value: 'B',
        sku: 'BB8'
      },
      {
        text: 'Three',
        value: 'C',
        sku: 'AA9'
      }
    ]
  },
  computed: {
    selected() {

      return this.options.find(op => {
        return op.value == this.selectedVal
      })
    }
  }
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<div id="app">
  <select v-model="selectedVal">
    <option v-for="option in options" v-bind:value="option.value">
      {{ option.text }}
    </option>
  </select>
  <br/>
  <span>Selected: {{ selected }}</span>
  <p>The SKU of your selected item is {{ selected.sku }}</p>

</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...