Вложенное поле выбора, изменяющее первый

1

Я создаю логику с 2 вложенными полями выбора, в основном загружаю json файл и передаю данные в массив в моем компоненте vuejs, json содержит логику для блока выбора 2, например, для Business Developemnt, который я хочу загрузить в второе поле "Финансовое предложение" и "Основная лицензия"...:

{
    "Business Development": [
        {
            "text": "Financial Proposal",
            "key": 1
        },
        {
            "text": "Master Licence and Service Agreement",
            "key": 2
        },
        {
            "text": "Non-Disclosure Agreement",
            "key": 3
        },
        {
            "text": "Relatório de Missão",
            "key": 4
        }
    ],
    "Configuration Management": [
        {
            "text": "Configuration Management Plan",
            "key": 1
        },
        {
            "text": "Configuration Management Plan For Implementation Projects",
            "key": 2
        }

Я уже что-то делаю, проблема в том, что когда я меняю первый флажок, второй пуст в позиции 1, вот так:

Изображение 174551

вот мой код:

<template>
  <div class="row margin-above2 box">
    <h3 class="text-center">Template</h3>
    <img width="70px" height="70px" class="img img-responsive" src="static/img/word.png">
      <form class="box-body form-horizontal">
        <div class="form-group">
          <div class="col-sm-12">
            <select class="form-control" v-model="docData.documentType">
              <option v-for="(item,index) in documentNested">
                {{ index }}
              </option>
            </select>
          </div>
        </div>
        <div class="form-group">
          <div class="col-sm-12">
            <select class="form-control" v-model="docData.documentSelection">
              <option v-for="(item,index) in documentNested[docData.documentType]">{{item.text}}</option>
            </select>
          </div>
        </div>
      </form>
    </div>
</template>


<script>
import data from '../../interfaceData/documentType.json'
import permissions from '../../interfaceData/permissions.json'

export default {
  name: 'app',
  data () {
    return {
      checked: false,
      documentNested: data,
      permissions: permissions,
      listItems: [],
      documentData: []
    }
  },

благодарю вас! :)

  • 0
    Вы хотите выбрать первый доступный документ, как только тип документа изменится?
  • 0
    да что-то подобное
Теги:
vue.js
vuejs2

1 ответ

1
Лучший ответ

Вам не хватает привязки value для каждой опции, которая должна быть значением, которое представляет этот параметр.

<option v-for="(item,index) in documentNested[docData.documentType]" :value="item">{{item.text}}</option>

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

watch: {
    'docData.documentType'(val) {
        this.docData.documentSelection = this.documentNested[val][0];
    }
}

Я попытался имитировать ваш компонент здесь, возможно, это поможет вам

https://jsfiddle.net/9uke1596/

  • 0
    ваше решение почти идеальное, просто выпустите 1 номер в первый раз, когда я не получу элемент
  • 0
    если я удаляю: значение, я получаю первое, что вы знаете, почему?
Показать ещё 7 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню