#Vue.js component for Select2 A [select2](https://select2.github.io) component for vue.js. Quickly create select2 components, load data via ajax and retrieve selected values and newly created tags. #Usage Download and register the component: ``` Vue.component( 'select2', require('./components/select2.vue') ); ``` Then use your favourite bundler (browserify, webpack etc) to update your bundle. ##HTML In your HTML simply add: ```html ``` ##Props The following props are vailable: ###:options Prop for sending select2 options, maps directly to select2 (see: https://select2.github.io) ```HTML ``` **Note:** The select2 "data" option is bound via vue.js not select2, so acts the same as loading data via ajax. ###data-url The URL for retrieving the data to populate your select2 select box (Expects `JSON) ```HTML ``` ###dispatch-id The dispatch id for the component. This is only needed if you have multiple select2 boxes on one page so you can identify which componant sent the dispatch. ```HTML ``` You can then pick the id with the second paramater of each event: ``` events: { 'select2-selected' : function(selected, dispatchId){ console.log('Item selected for ' + dispatchId); }, 'select2-tag-created' : function(tags, dispatchId){ console.log('New tag created for ' + dispatchId); } ``` ##Dispatchers There are two dispatchers: ###select2-selected Supplies a list of all selected list items (excluding created tags). ###select2-tag-created Supplies a list of all newly created tags. ##Example Parent ViewModel ```javascript var vm = new Vue({ el: 'body', data: { 'selected' : [], 'createdTags': [] }, events: { 'select2-selected' : function(selected){ // Set the selected list this.$set('selected', selected); }, 'select2-tag-created' : function(tags){ // Set the created tags list this.$set('createdTags', tags); } } }); ```