Можно ли передать массив в обратном вызове element-ui el-autocomplete? - PullRequest
0 голосов
/ 01 октября 2018

Я пытался использовать тег el-autocomplete с самой простой версией: Array, возвращаемой функцией обратного вызова ( JSFiddle версия ).

Vue.component('button-counter', {
  data: function() {
    return {
      selectdusers: [],
      user: ''
    }
  },
  template: '<el-container>        <el-container style="margin-left: 15px; width: 150px">            <el-autocomplete                class="inline-input"                v-model="user"                :fetch-suggestions="filterUsers"                placeholder="add user"                @select="handleSelect"            ></el-autocomplete>            <el-button type="info" icon="el-icon-plus" click="addUser(user)">Add</el-button>        </el-container>    </el-container>',
  methods: {
    addUser(user) {
      this.selectedUsers.push(user)
      this.user = ''
    },
    filterUsers(user, cb) {
      console.log(user)
      cb(['qqq', 'zzz'])
      //return this.allusers.filter(x => _.includes(x.f+x.t, user))
    },
    handleSelect() {}
  },
})

new Vue({
  el: '#components-demo'
})
@import url("//unpkg.com/element-ui@2.4.8/lib/theme-chalk/index.css");
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/element-ui/2.4.7/index.js"></script>
<div id="components-demo">
  <button-counter></button-counter>
</div>

Поле для предложений визуально пусто, а DevTools отображает ожидаемые элементы в <ElAutocompleteSuggestions>datasuggestions

image

image

1 Ответ

0 голосов
/ 01 октября 2018

То, что необходимо передать с помощью обратного вызова, - это Object, у которого должно быть свойство с именем value.Это свойство содержит то, что отображается как предложение.

Для примера выше:

filterUsers(user, cb) {
      console.log(user)
      cb([{'value': 'qqq', 'whatever': 'djhjfh'}, {'value': 'zzz', 'whatever': 'uiuiiu'}])
    },
...