@@ -2,106 +2,104 @@ import angular from 'angular';
22
33import './input-tags.component' ;
44
5- angular . module ( 'dev-server' , [ 'angularjs-input-tags' ] )
6- . component ( 'devServer' , {
7- template : `
8- <input-tags tags="$ctrl.tags"
9- suggestions="$ctrl.suggestions"
10- disabled="$ctrl.disabled"
11- key-property="code"
12- display-property="title"
13- get-suggestions="$ctrl.updateSuggestions"></input-tags>
14- <pre>
15- {{$ctrl.tags | json}}
16- </pre>` ,
17- controller : searchCtrl
18- } ) ;
19-
20- function searchCtrl ( ) {
21- const vm = this ;
5+ const mock = {
6+ title : 'root' ,
7+ data : [
8+ {
9+ code : 1 ,
10+ title : '1' ,
11+ data : [ {
12+ code : 10 ,
13+ title : '10' ,
14+ data : [
15+ { code : 100 , title : '100' } ,
16+ { code : 101 , title : '101' } ,
17+ { code : 102 , title : '102' }
18+ ]
19+ } , {
20+ code : 11 , title : '11'
21+ } , {
22+ code : 12 ,
23+ title : '12' ,
24+ data : [
25+ { code : 120 , title : '120' } ,
26+ { code : 121 , title : '121' } ,
27+ { code : 122 , title : '122' }
28+ ]
29+ } ]
30+ } ,
31+ { code : 2 , title : '2' } ,
32+ {
33+ code : 3 ,
34+ title : '3' ,
35+ data : [ {
36+ code : 30 ,
37+ title : '30' ,
38+ data : [
39+ { code : 300 , title : '300' } ,
40+ { code : 301 , title : '301' } ,
41+ { code : 302 , title : '302' }
42+ ]
43+ } , {
44+ code : 31 , title : '31'
45+ } , {
46+ code : 32 ,
47+ title : '32' ,
48+ data : [
49+ { code : 320 , title : '320' } ,
50+ { code : 321 , title : '321' } ,
51+ { code : 322 , title : '322' }
52+ ]
53+ } ]
54+ }
55+ ]
56+ } ;
2257
23- vm . $onInit = ( ) => {
24- vm . tags = [ ] ;
25- vm . disabled = false ;
26- vm . suggestions = { title : '' , data : [ ] } ;
27- vm . updateSuggestions ( ) ;
28- } ;
58+ class DevServer {
59+ $onInit ( ) {
60+ this . tags = [ ] ;
61+ this . disabled = false ;
62+ this . suggestions = { title : '' , data : [ ] } ;
63+ this . updateSuggestions ( ) ;
64+ }
2965
30- function flat ( accumulator , currentValue ) {
66+ flat ( accumulator , currentValue ) {
3167 accumulator . push ( currentValue ) ;
3268 if ( Array . isArray ( currentValue . data ) ) {
33- return currentValue . data . reduce ( flat , accumulator ) ;
69+ return currentValue . data . reduce ( this . flat , accumulator ) ;
3470 }
3571 return accumulator ;
3672 }
3773
38- vm . updateSuggestions = search => {
39- const newSuggestions = searchSuggestions ( search ) ;
74+ updateSuggestions ( search ) {
75+ const newSuggestions = this . searchSuggestions ( search ) ;
4076
41- vm . suggestions . data . length = 0 ;
42- vm . suggestions . title = newSuggestions . title ;
43- Array . prototype . push . apply ( vm . suggestions . data , newSuggestions . data ) ;
44- } ;
45-
46- const mock = {
47- title : 'root' ,
48- data : [
49- {
50- code : 1 ,
51- title : '1' ,
52- data : [ {
53- code : 10 ,
54- title : '10' ,
55- data : [
56- { code : 100 , title : '100' } ,
57- { code : 101 , title : '101' } ,
58- { code : 102 , title : '102' }
59- ]
60- } , {
61- code : 11 , title : '11'
62- } , {
63- code : 12 ,
64- title : '12' ,
65- data : [
66- { code : 120 , title : '120' } ,
67- { code : 121 , title : '121' } ,
68- { code : 122 , title : '122' }
69- ]
70- } ]
71- } ,
72- { code : 2 , title : '2' } ,
73- {
74- code : 3 ,
75- title : '3' ,
76- data : [ {
77- code : 30 ,
78- title : '30' ,
79- data : [
80- { code : 300 , title : '300' } ,
81- { code : 301 , title : '301' } ,
82- { code : 302 , title : '302' }
83- ]
84- } , {
85- code : 31 , title : '31'
86- } , {
87- code : 32 ,
88- title : '32' ,
89- data : [
90- { code : 320 , title : '320' } ,
91- { code : 321 , title : '321' } ,
92- { code : 322 , title : '322' }
93- ]
94- } ]
95- }
96- ]
97- } ;
77+ this . suggestions . data . length = 0 ;
78+ this . suggestions . title = newSuggestions . title ;
79+ Array . prototype . push . apply ( this . suggestions . data , newSuggestions . data ) ;
80+ }
9881
99- function searchSuggestions ( search ) {
82+ searchSuggestions ( search ) {
10083 return {
10184 title : mock . title ,
102- data : ( search ? mock . data . reduce ( flat , [ ] ) . filter ( elem => {
85+ data : ( search ? mock . data . reduce ( this . flat , [ ] ) . filter ( elem => {
10386 return String ( elem . title ) . indexOf ( String ( search ) ) >= 0 ;
10487 } ) : mock . data )
10588 } ;
10689 }
10790}
91+
92+ angular . module ( 'dev-server' , [ 'angularjs-input-tags' ] )
93+ . component ( 'devServer' , {
94+ template : `
95+ <input-tags tags="$ctrl.tags"
96+ suggestions="$ctrl.suggestions"
97+ disabled="$ctrl.disabled"
98+ key-property="code"
99+ display-property="title"
100+ get-suggestions="$ctrl.updateSuggestions"></input-tags>
101+ <pre>
102+ {{$ctrl.tags | json}}
103+ </pre>` ,
104+ controller : DevServer
105+ } ) ;
0 commit comments