0

我正在尝试创建一个下拉列表(v-select/q-select(使用类星体)),它允许我从我的 vuex-storage 中的一个数组中进行选择,然后最终将所选项目(它的内容)保存在一个变量中。目前我访问 vuex-storage 没有问题,但面临的问题是 v-select 需要一个字符串而不是一个对象。

我的代码如下所示。

// vuex storage:

const state = {
  savedsystems: 
     [
      id: "1",
      system: {...}
     ],
     [
      id: "2",
      system: {...}
     ]

 // example of the vuex storage out of my viewdevtools
 systemsconstant: Object
   savedsystems:Array[2]
     0:Object
       id:"first"
       system:Object
         7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
           name:"3"
           status:"defined"

         88519419-8a81-48f1-a5e6-5da77291b848:Object
           name:"5"
           status:"not defined"
     1:Object
       id:"second"
       system:Object
         7a73d702-fc28-4d15-a54c-2bb950f7a51c:Object
           name:"3"
           status:"not defined"

         88519419-8a81-48f1-a5e6-5da77291b848:Object
           name:"9"
           status:"defined"
}


// dropdown:

    <q-select 
      outlined 
      dense 
      emit-value
      :value="currentsystem"
      :options="savedsystems" 
      label="selectsystem" />


// computed to get systems from vuex:

computed: {
    savedsystems() {
      return this.$store.getters['systemsconstant/getsavedsystems'] 
    }
  },

我使用以下示例https://codepen.io/sagalbot/pen/aJQJyp作为灵感,并尝试了几种不同的设置进行字符串化,但实际上什么都没有。

如果有人尝试将我的案例应用于类似的问题(v-select 显示对象 Object),则提到的格式标签将是一个对象而不是字符串。

问题: 如何修改(使用吸气剂)导入的对象数组“savedsystems”,这样它既可以用作标签来选择它,也可以将它正确连接到值,这样我就可以将选择的对象保存为多变的。或者我可以在我的 v-select 中改变一些东西,例如改变后面的内容:options/options?

我会很感激任何帮助!

4

1 回答 1

0

您应该使用该属性option-label

    <div id="q-app">
      <div class="q-pa-md" style="max-width: 300px">
        <div class="q-gutter-md">
          <q-badge color="secondary" multi-line>
            Model: "{{ model }}"
          </q-badge>
    
          <q-select filled v-model="model" :options="options" label="Standard" option-label="description"></q-select>
          
          {{ model }}
        </div>
      </div>
    </div>

JS:

new Vue({
  el: '#q-app',
  data () {
    return {
      model: null,
      options: [
        {
          label: 'Google',
          value: 'Google',
          description: 'Search engine',
          category: '1'
        },
        {
          label: 'Facebook',
          value: 'Facebook',
          description: 'Social media',
          category: '1'
        },
        {
          label: 'Twitter',
          value: 'Twitter',
          description: 'Quick updates',
          category: '2'
        },
      ]
    }
  }
})

https://codepen.io/reijnemans/pen/bGpqJYx?editors=1010

于 2020-08-26T13:28:03.313 回答