ederim 4.0.0 Select2 için 2'yi Seç 3.5.2 taşıma gerçekleştirirken the release notes ve 4.0 release announcement okumanızı öneririz. .. bir fikrin (formatSelection ve query.term kullanarak) verilerine ararken sürümü 3.5.2 ile
, ben işlev templateResult sadece 'sonucu' geçmesi (v4.0.0 ile bunu yapmak için nasıl alt çizgi maçı üretebilir ve artık değil 'sorgu'?
sonuç sorguları ayrılmış olduğu için bu 4.0 uzaklaştırıldı, böylece bilgilendirdiğiniz tutmak için anlamı yoktu. Tabii ki, bu değil sorgusunu alıp saklayamayacağınız anlamına gelir.Tüm yapmanız gereken, sorguyu depolamaktır, aşağıdaki gibi bir şey çalışabilir
Arama değeri kullanarak
var query = {};
var $element = $('#my-happy-select');
function markMatch (text, term) {
// Find where the match is
var match = text.toUpperCase().indexOf(term.toUpperCase());
var $result = $('<span></span>');
// If there is no match, move on
if (match < 0) {
return $result.text(text);
}
// Put in whatever text is before the match
$result.text(text.substring(0, match));
// Mark the match
var $match = $('<span class="select2-rendered__match"></span>');
$match.text(text.substring(match, match + term.length));
// Append the matching text
$result.append($match);
// Put in whatever is after the match
$result.append(text.substring(match + term.length));
return $result;
}
$element.select2({
templateResult: function (item) {
// No need to template the searching text
if (item.loading) {
return item.text;
}
var term = query.term || '';
var $result = markMatch(item.text, term);
return $result;
},
language: {
searching: function (params) {
// Intercept the query as it is happening
query = params;
// Change this to be appropriate for your application
return 'Searching…';
}
}
});
sürüm 3.x ile, ekleyebilir ücretsiz girişleri (createSearchChoice kullanarak) listesinde değildi. V4.0 bu seçeneğe sahip değil, herhangi bir fikrin tekrar nasıl yapılacağı?
Bu
hala
tags
seçeneği (
true
olarak ayarlayın) kullanarak 4,0 yapılabilir. Etiketi özelleştirmek isterseniz,
createTag
'u (
createSearchChoice
benzeri) kullanabilirsiniz.
var $element = $('#my-happy-select');
$element.select2({
createTag: function (query) {
return {
id: query.term,
text: query.term,
tag: true
}
},
tags: true
});
Teşekkürler Kevin, Sorulara ve kodlamalara aynı anda yanıt vermek için harcadığınız çabayı (ve zamanı) takdir edin. Ancak, 2. soru için ücretsiz bir 'etiket' eklemek istemiyorum, ancak bir açılır liste olarak ücretsiz bir giriş yapmak istemiyorum. herhangi bir yardım ? Teşekkürler. – Frederic
Ücretsiz bir etiketle ücretsiz giriş arasındaki fark nedir? "createTag", eski "createSearchChoice" ile aynıdır. –
Teşekkürler Kevin. Alt çizgi çözümü tam ihtiyacım olan şey. – DerVO