J'essaye d'implémenter Typeahead.JS exemple "Modèle personnalisé" .
$('#custom-templates .typeahead').typeahead(null, {
name: 'best-pictures',
displayKey: 'value',
source: bestPictures.ttAdapter(),
templates: {
empty: [
'<div class="empty-message">',
'unable to find any Best Picture winners that match the current query',
'</div>'
].join('\n'),
suggestion: Handlebars.compile('<p><strong>{{value}}</strong> – {{year}}</p>')
}
});
Plus précisément cette ligne:
suggestion: Handlebars.compile('<p><strong>{{value}}</strong> – {{year}}</p>')
Au départ, je ne savais pas que vous deviez explicitement exiger le guidon comme dépendance:
Uncaught ReferenceError: Handlebars is not defined
Quand je retire le guidon ...
suggestion: '<p><strong>' + value + '</strong> – ' + year + '</p>'
Cela donne une autre erreur JS:
Uncaught ReferenceError: value is not defined
Est-il possible d'utiliser un gabarit de vue personnalisé sans utiliser le moteur de guidon?
Utilisez ce format:
suggestion: function(data) {
return '<p><strong>' + data.value + '</strong> – ' + data.year + '</p>';
}
Tiré de ce fil .
Cela pourrait aider - je l'ai intégré à Bootstrap:
<div class="col-lg-3" id="the-basics">
<input type="text" class="typeahead form-control" placeholder="my placeholder" aria-describedby="basic-addon1">
</div>
$('#the-basics .typeahead').typeahead(null, {
name: 'best-pictures',
display: 'imageUrl',
source: function show(q, cb, cba) {
console.log(q);
var url = '/yoururl/'+q;
$.ajax({ url: url })
.done(function(res) {
cba(res.list);;
})
.fail(function(err) {
alert(err);
});
},
limit:10,
templates: {
empty: [
'<div class="empty-message">',
'No data',
'</div>'
].join('\n'),
suggestion: function(data) {
return '<p><strong>' + data.itemName + '</strong> - <img height:"50px" width:"50px" src='+data.imageUrl+'></p>';
}
}
});