A Vue.js component implementing the select control with the jQuery select2 plugin.
npm install vue-select2




A Vue.js component implementing the select control with the jQuery select2 plugin.
The demo page is HERE.
- Vue.js ^1.0.24
- JQuery ^2.2.4
- Select2 ^4.0.3
``shell`
$ npm install vue-select2
`shell`
$ bower install vue-select
The HTML snippets are as follows:
`html`
Selected Result: {{result1}}
:searchable="true" language="en-US">
Selected Result: {{result2}}
:searchable="true" language="zh-CN">
Selected Result: {{result3}}
The Javascript snippets are as follows:
`javascript`
var vm = new Vue({
el: "#app",
components: {
"vue-select": require("vue-select")
},
data: {
options1: [
"value1",
"value2",
"value3"
],
options2: [{
text: "name1",
value: "value1"
}, {
text: "name2",
value: "value2"
}, {
text: "name3",
value: "value3"
}],
options3: [{
label: "group1",
options: [{
text: "name1",
value: "value1"
}, {
text: "name2",
value: "value2"
}, {
text: "name3",
value: "value3"
}]
}, {
label: "group2",
options: [{
text: "name4",
value: "value4"
}, {
text: "name5",
value: "value5"
}, {
text: "name6",
value: "value6"
}]
}],
result1: "",
result2: "",
result3: ""
}
});
The array of options of the selection control. It could be
- an array of strings, e.g., ['opt1', 'opt2']; or[{text: 'name1', value: 'val1'}, {text: 'name2', value: 'val2'}]
- an array of objects specifying the text and value of each option, e.g.,
; or`
- an array of objects specifying the option group, e.g.
`
[{
label: 'group1',
options: [{text: 'name1', value: 'val1'}, {text: 'name2', value: 'val2'}]
}, {
label: 'group2',
options: [{text: 'name3', value: 'val3'}, {text: 'name4', value: 'val4'}]
}]
The model bind to the control, which must be a two way binding variable.
Note that the value of model could be set to null, and in that case thenull
selection will be set to nothing. Also, if the selection is set to nothing
(that is, the user delete the text in the input box of the selector), the
value of the model will be set to instead of an empty string.
The optional flag indicates whether to show the search box.
The optional code of language used by the
select2 plugin.
The supported languages are exactly the same as the supported languages of the
select2 plugin. In order to use the
supported language, you must also include the corresponding "i18n" js file of
the select2 plugin in your HTML file.
Note that the language code passed to this property could be a locale code
consists of a language code and a country code, e.g., "en-US". The component"zh-CN"
will automatically convert the locale code to the language code supported by
the select2 plugin. Since some languages
have different variants in different country or region, e.g., for the"zh-TW"
simplified Chinese and for the traditional Chinese, it's recommended"[language]-[country]"
to use the locale code in the form of .
If this property is not set, and the vue-i18n
plugin is used, the component will use the language code $language provided"en-US"
by the vue-i18n plugin; otherwise, the
component will use the default value .
The optional name of the theme of the select2
plugin. Default value is 'bootstrap'.
Note that in order to use the bootstrap theme, you must include the CSS file
from the select2-bootstrap-theme project.
And it's very important that the above CSS file must be included AFTER the
CSS file of the bootstrap.
The following is the correct order for including CSS files:
`html`
Check the demo page for details.
The optional name of the selection control.
This property is a reference to the JQuery selection of the base select
control. It could be used to call the APIs of
select2 plugin. For example,
select.control.val(val) will set the value of the select to theselect
specified value, where is the reference to the vue-select
component.
- Fork it !
- Create your top branch from dev: git branch my-new-topic origin/devgit commit -am 'Add some topic'
- Commit your changes: git push origin my-new-topic
- Push to the branch: dev
- Submit a pull request to branch of Haixing-Hu/vue-select repository !
First you should install all depended NPM packages. The NPM packages are used
for building and testing this package.
`shell`
$ npm install
Then install all depended bower packages. The bower packages are depended by
this packages.
`shell`
$ bower install
Now you can build the project.
`shell`
$ gulp build
The following command will test the project.
`shell`
$ gulp test
The following command will perform the test and generate a coverage report.
`shell`
$ gulp test:coverage
The following command will perform the test, generate a coverage report, and
upload the coverage report to coveralls.io.
`shell`
$ gulp test:coveralls
You can also run bower install and gulp build together with the following`
command:shell`
npm run build
Or run bower install and gulp test:coveralls together with the following`
command:shell``
npm run test