File tree Expand file tree Collapse file tree 1 file changed +63
-0
lines changed
Expand file tree Collapse file tree 1 file changed +63
-0
lines changed Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="utf-8 ">
5+ < title > Vue.js custom directive integration example (select2)</ title >
6+ < script src ="../../dist/vue.js "> </ script >
7+ < script src ="http://code.jquery.com/jquery-2.1.4.min.js "> </ script >
8+ < link href ="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/css/select2.min.css " rel ="stylesheet ">
9+ < script src ="http://cdnjs.cloudflare.com/ajax/libs/select2/4.0.0/js/select2.min.js "> </ script >
10+ < style >
11+ select {
12+ min-width : 300px ;
13+ }
14+ </ style >
15+ </ head >
16+ < body >
17+
18+ < div id ="el ">
19+ < p > Selected: {{selected}}</ p >
20+ < select v-select ="selected " options ="options ">
21+ < option value ="0 "> default</ option >
22+ </ select >
23+ </ div >
24+
25+ < script >
26+ Vue . directive ( 'select' , {
27+ twoWay : true ,
28+ bind : function ( ) {
29+ var optionsData
30+ var optionsExpression = this . _checkParam ( 'options' )
31+ if ( optionsExpression ) {
32+ optionsData = this . vm . $eval ( optionsExpression )
33+ }
34+ var self = this
35+ $ ( this . el )
36+ . select2 ( {
37+ data : optionsData
38+ } )
39+ . on ( 'change' , function ( ) {
40+ self . set ( this . value )
41+ } )
42+ } ,
43+ update : function ( value ) {
44+ $ ( this . el ) . val ( value ) . trigger ( 'change' )
45+ } ,
46+ unbind : function ( ) {
47+ $ ( this . el ) . off ( ) . select2 ( 'destroy' )
48+ }
49+ } )
50+
51+ var vm = new Vue ( {
52+ el : '#el' ,
53+ data : {
54+ selected : 0 ,
55+ options : [
56+ { id : 1 , text : 'hello' } ,
57+ { id : 2 , text : 'what' }
58+ ]
59+ }
60+ } )
61+ </ script >
62+ </ body >
63+ </ html >
You can’t perform that action at this time.
0 commit comments