0

我正在使用带有分页和可搜索选项的 vue-select。当我点击选项而不搜索时,标签道具(用户看到的)显示正确的文本。

但是,当我搜索时,标签道具会显示值(我正在保存)而不是指定的文本。

如何让 v-select 在搜索时显示“文本”而不​​是 code.value?

             <v-select
                v-model="primary_scenario_field"
                :options="paginated"
                :reduce="code => code.value"
                label="text"
                required
                searchable
                @search="handleVSelectSearch"
              >
               <li slot="list-header" class="pagination">
                  <b-button :disabled="!hasPrevPage" 
                    @click="handlePaginationClick('previous')"> 
                    Previous
                  </b-button>
                  <b-button :disabled="!hasNextPage" 
                    @click="handlePaginationClick('next')"> 
                    Next 
                  </b-button>
               </li>
            </v-select>

data ()
 {
      search: '',
      offset: 0,
      limit: 10,
      filtered: [],
      paginated: [],
      code_list: []
 },

  methods: {

   handlePaginationClick (direction){
      if(direction == 'next') this.offset = this.offset + 10;
      if(direction == 'previous') this.offset = this.offset - 10;
      this.$nextTick();
      this.paginated = this.paginateResults(this.filtered);
    },

    paginateResults (value){
      return value.slice(this.offset, this.limit + this.offset);
    },

    async handleVSelectSearch (query = ''){
      query = isString(query) ? query.trim().toUpperCase() : query.toUpperCase();
      this.filtered = this.filterResults(query);
      await this.$nextTick();
      this.offset = 10;
      this.handlePaginationClick('previous');
    },

    filterResults (value){
      return this.code_list.filter(item => item.text.includes(value));
    },

    **this.code_list options are getting loaded like this (in an array):
    { text: `${response.a}: ${response.b}`, value: response.id }
4

1 回答 1

0

我最终取出 :reduce="code => code.value" 并在提交之前手动解析它。

于 2021-07-14T16:08:57.627 回答