Skip to content

Commit d61529d

Browse files
committed
Update doc
1 parent 7fbe08d commit d61529d

File tree

2 files changed

+86
-32
lines changed

2 files changed

+86
-32
lines changed

docs/index.md

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
suggestions="$ctrl.suggestions"
1010
key-property="code"
1111
display-property="title"
12+
get-suggestions="$ctrl.updateSuggestions"
1213
min-length="1">
1314
</input-tags>
1415

@@ -26,6 +27,7 @@ And the component where you want in this app:
2627
<input-tags tags="$sctrl.tags"
2728
suggestions="$ctrl.suggestions"
2829
key-property="code"
30+
get-suggestions="$ctrl.updateSuggestions"
2931
display-property="title">
3032
</input-tags>
3133
```
@@ -38,19 +40,29 @@ angular.module('app').controller('SearchController', searchCtrl);
3840
function searchCtrl() {
3941
const vm = this;
4042

41-
vm.tags = [{
42-
code: 'default',
43-
title: 'root'
44-
}];
45-
46-
vm.suggestions = {
47-
title: 'root',
48-
data: [{
49-
code: 1,
50-
title: '1',
51-
data: [/* Another nested list of items for multilevel purposes */]},
52-
]
53-
};
43+
vm.$onInit = () => {
44+
vm.tags = [{
45+
code: 'default',
46+
title: 'root'
47+
}];
48+
49+
vm.suggestions = {
50+
title: 'root',
51+
data: [{
52+
code: 1,
53+
title: '1',
54+
data: [/* Another nested list of items for multilevel purposes */]},
55+
]
56+
};
57+
}
58+
59+
vm.updateSuggestions = search => {
60+
const newSuggestions = getNewSuggestionsFunctions(search);
61+
62+
vm.suggestions.title = newSuggestions.title;
63+
vm.suggestions.data.length = 0;
64+
Array.push.apply(vm.suggestions.data, newSuggestions.data);
65+
}
5466
}
5567
```
5668

docs/js/app.js

Lines changed: 61 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,28 +8,38 @@
88
function searchCtrl() {
99
const vm = this;
1010

11-
vm.tags = [{
12-
code: 'lol',
13-
title: 'things'
14-
}];
15-
vm.suggestions = {
16-
title: 'root',
17-
data: [
18-
{
19-
code: 1,
20-
title: '1',
21-
data: [
22-
{
11+
vm.$onInit = () => {
12+
vm.tags = [];
13+
vm.suggestions = {title: '', data: []};
14+
vm.getSuggestions();
15+
};
16+
17+
function flat(r, a) {
18+
r.push(a);
19+
if (Array.isArray(a.data)) {
20+
return a.data.reduce(flat, r);
21+
}
22+
return r;
23+
}
24+
25+
vm.getSuggestions = search => {
26+
const mock = {
27+
title: 'root',
28+
data: [
29+
{
30+
code: 1,
31+
title: '1',
32+
data: [{
2333
code: 10,
2434
title: '10',
2535
data: [
2636
{code: 100, title: '100'},
2737
{code: 101, title: '101'},
2838
{code: 102, title: '102'}
2939
]
30-
},
31-
{code: 11, title: '11'},
32-
{
40+
}, {
41+
code: 11, title: '11'
42+
}, {
3343
code: 12,
3444
title: '12',
3545
data: [
@@ -38,10 +48,42 @@
3848
{code: 122, title: '122'}
3949
]
4050
}
41-
]
42-
},
43-
{code: 2, title: '2'}
44-
]
51+
]
52+
},
53+
{code: 2, title: '2'},
54+
{
55+
code: 3,
56+
title: '3',
57+
data: [{
58+
code: 30,
59+
title: '30',
60+
data: [
61+
{code: 300, title: '300'},
62+
{code: 301, title: '301'},
63+
{code: 302, title: '302'}
64+
]
65+
}, {
66+
code: 31, title: '31'
67+
}, {
68+
code: 32,
69+
title: '32',
70+
data: [
71+
{code: 320, title: '320'},
72+
{code: 321, title: '321'},
73+
{code: 322, title: '322'}
74+
]
75+
}]
76+
}
77+
]
78+
};
79+
80+
const result = search ? mock.data.reduce(flat, []).filter(elem => {
81+
return String(elem.title).indexOf(String(search)) >= 0;
82+
}) : mock.data;
83+
84+
vm.suggestions.data.length = 0;
85+
vm.suggestions.title = mock.title;
86+
Array.prototype.push.apply(vm.suggestions.data, result);
4587
};
4688
}
4789
})();

0 commit comments

Comments
 (0)