SOLVED - Typeahead - refresh local data voor Default suggestions
https://twitter.github.io/typeahead.js/examples/
Ik probeer het werkend te krijgen, en dat is me ook eenmalig gelukt met de volgende code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<script type='text/javascript'>
$(window).load(function(){
var nflTeams = new Bloodhound({
//limit: 5,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: function(obj) { return obj.team; },
prefetch: 'example.json'
});
nflTeams.initialize(true);
function nflTeamsWithDefaults(q, sync) {
if (q === '') {
sync(nflTeams.all().slice(0, 2));
}
else {
nflTeams.search(q, sync);
}
}
$('#scrollable-dropdown-menu .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 0
},
{
name: 'nflTeams',
display: 'team',
//limit: 15,//nfl-teams.length,
source: nflTeamsWithDefaults
});
});
</script>
</head>
<body>
<div id="scrollable-dropdown-menu" class="nflTeams">
<input class="typeahead" type="text" placeholder="NFL Teams" autocomplete="off">
</div>
</body>
$(window).load(function(){
var nflTeams = new Bloodhound({
//limit: 5,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: function(obj) { return obj.team; },
prefetch: 'example.json'
});
nflTeams.initialize(true);
function nflTeamsWithDefaults(q, sync) {
if (q === '') {
sync(nflTeams.all().slice(0, 2));
}
else {
nflTeams.search(q, sync);
}
}
$('#scrollable-dropdown-menu .typeahead').typeahead({
hint: true,
highlight: true,
minLength: 0
},
{
name: 'nflTeams',
display: 'team',
//limit: 15,//nfl-teams.length,
source: nflTeamsWithDefaults
});
});
</script>
</head>
<body>
<div id="scrollable-dropdown-menu" class="nflTeams">
<input class="typeahead" type="text" placeholder="NFL Teams" autocomplete="off">
</div>
</body>
Hier zag example.json er zo uit:
["Detroit Lions", "Green Bay Packers", "Chicago Bears"]
Maar toen ik probeerde om nog meer elementen toe te voegen in deze array, werden ze niet meer ingelezen. Ik denk dat dit te maken heeft met local data die al eenmaal ingelezen was en daarna niet meer werd gerefresht. Nu bevat de dropdown list van het invulveld helemaal niets meer, en wordt ook nog steeds niet de local data gerefresht. Hoe kan ik het zo maken dat de code elke keer bij het toevoegen van elementen in example.json de local data opnieuw wordt gerefresht?
Toevoeging op 27/10/2015 23:07:15:
Opgelost, door bestuderen van deze website:
http://findsupport.xyz/question/21891343/cannot-update-twitter-typeahead-js-prefetch-thumbprint-after-initial-load
Toevoeging op 27/10/2015 23:09:13:
Het bestand example.json ziet er trouwens zo uit:
[{"team": "Detroit Lions"}, {"team": "Green Bay Packers"}, {"team": "Chicago Bears"}]
Gewijzigd op 27/10/2015 23:09:34 door Bjorn Chin Fo Sieeuw
Er zijn nog geen reacties op dit bericht.