Добавить новые теги в vue-select

В компоненте vue-select vuejs, если вы видите на его демонстрационной странице, вы можете выбрать несколько элементов из выпадающего списка. Однако, если вы наберете что-то, что недоступно в раскрывающемся списке, вы можете просто набрать этот новый текст и нажать клавишу ввода, и оно станет тегом. Вы можете увидеть это поведение здесь на их демонстрационной странице:

https://sagalbot.github.io/vue-select/

Однако я не могу этого сделать. Я могу выбрать из выпадающего списка, но если я наберу что-то новое, то это не станет тегом. У меня есть этот jsbin, показывающий, что я сделал. Любая помощь приветствуется.

http://jsbin.com/xoxohenoli/edit?html,js,output

Мой Javascript:

Vue.component('v-select', VueSelect.VueSelect);

   new Vue({
      el: '#app',
      data: function() {
        return {
          options: ["A","B"],
          placeholder: 'Choose a country..',
        }
      },

    });

Мой HTML:

<!DOCTYPE html>
<html>
<head>
<script src="http://unpkg.com/vue@2.1.10"></script>
<script src="http://unpkg.com/vue-select@2.0.0"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" type="text/css" />  
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="app" class="container-fluid">
    <h2>VueSelect Basic Example</h2>
    <v-select :placeholder="placeholder" 
              multiple 
              :options="options"></v-select>
  </div>
</body>
</html>

1 ответ

Решение

Вам необходимо добавить атрибут taggable к компоненту, пожалуйста, проверьте в рабочем примере.

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

<!DOCTYPE html>
<html>
<head>
<script src="https://unpkg.com/vue@2.1.10/dist/vue.js"></script>
<script src="https://unpkg.com/vue-select@2.0.0/dist/vue-select.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />  
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <div id="app" class="container-fluid">
    <h2>VueSelect Basic Example</h2>
    <v-select taggable :placeholder="placeholder" 
              multiple 
              :options="options"></v-select>
  </div>
  <script>  
  Vue.component('v-select', VueSelect.VueSelect);

   new Vue({
      el: '#app',
      data: function() {
        return {
          options: ["A","B"],
          placeholder: 'Choose a country..',
        }
      },

    });
  </script>
</body>
</html>

Другие вопросы по тегам