vue-tags

Vue.js input tag editor component

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
vue-tags
1241.0.46 years ago6 years agoMinified + gzip package size for vue-tags in KB

Readme

Vue-Tags
A Flexible Vue.js 2 input Tag component where you can edit wathever you like related to HTML/CSS.

Logo

Demo

Demo

Installation :

npm install vue-tags

Getting Started

In your script entry point:
<div id="app">

  <input-tags v-model="tags">
    <div class="tags-input"
            slot-scope="{tag,removeTag,inputEventHandlers,inputBindings }">
            <span v-for="tag in tags"
              class="tags-input-tag">
              <span>{{ tag }}</span>
              <button type="button" class="tags-input-remove"
                v-on:click="removeTag(tag)"
              >×
             </button>
            </span>
            <input
              class="tags-input-text"  placeholder="Add tag..."
              v-on="inputEventHandlers"
              v-bind="inputBindings"
            >
          </div>
   </input-tags>

</div>

window.Vue = require("vue");

import VueTags from "vue-tags";

//Vue.component("input-tags", VueTags); If you want a global Component

const app = new Vue({
  el: "#app",
  components: {
    VueTags
  },
  data: {
    tags: ['Laravel','Vuejs'],
  }
});

Usage

Just add the tags as a v-model and follow the code above just don't change the vuejs attributes and the others is your choice do wathever you want with them.

Props

By Default The tag is added when you click the Enter Key but you can customize it by adding addKey prop with KeyCode of your choice. You can have it here. For Example 188 for Comma ,
<div id="app">

  <input-tags v-model="tags" :addKey="188">
    <div class="tags-input"
            slot-scope="{tag,removeTag,inputEventHandlers,inputBindings }">
            <span v-for="tag in tags"
              class="tags-input-tag">
              <span>{{ tag }}</span>
              <button type="button" class="tags-input-remove"
                v-on:click="removeTag(tag)"
              >×
             </button>
            </span>
            <input
              class="tags-input-text"  placeholder="Add tag..."
              v-on="inputEventHandlers"
              v-bind="inputBindings"
            >
          </div>
   </input-tags>

</div>

const app = new Vue({
  el: "#app",
  components: {
    VueTags
  },
  data: {
    tags: ['Laravel','Vuejs'],
  }
});

By Default The tag is deleted when you click delete Key but you can customize it by adding deleteKey prop with KeyCode of your choice. You can have it here. For Example 13 for Comma Enter Now When we click Enter we delete the tag
<div id="app">

  <input-tags v-model="tags" :deleteKey="13">
    <div class="tags-input"
            slot-scope="{tag,removeTag,inputEventHandlers,inputBindings }">
            <span v-for="tag in tags"
              class="tags-input-tag">
              <span>{{ tag }}</span>
              <button type="button" class="tags-input-remove"
                v-on:click="removeTag(tag)"
              >×
             </button>
            </span>
            <input
              class="tags-input-text"  placeholder="Add tag..."
              v-on="inputEventHandlers"
              v-bind="inputBindings"
            >
          </div>
   </input-tags>

</div>

const app = new Vue({
  el: "#app",
  components: {
    VueTags
  },
  data: {
    tags: ['Laravel','Vuejs'],
  }
});

Contributing

You are more than welcome to contribute to this repo with anything you think is useful. fixes are more than welcome.