Typeahead/Bloodhound - 结果数
Typeahead/Bloodhound - number of results
我一直在为一个项目使用 typeahead 和 bloodhound,我发现它真的不直观而且令人沮丧。本应花一秒钟时间完成的事情,却在一个小时的研究中结束。
无论如何,我正在尝试将结果数量提醒到我的猎犬中。
到目前为止,这是我的代码
var pisList = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "../Helper/LookUpPIs?list=" + $list,
cache: false
}
});
alert(pisList.length);
//Typeahead on project numbers
$('.pis').typeahead({
hint: true,
higlight: true,
minLength: 1
},
{
name: 'pis',
source: pisList
});
//Display project details distribution panel
$('input.pis').on('typeahead:selected', function (event, selection) {
var result = selection.match(/\((.*)\)/);
getPiInformation(result[1]);
});
return false;
}
现在我的警报 return 我未定义。我尝试了多种变体,但 none 成功了。
如果您有任何提示,请告诉我并提前致谢。
这是一种愚蠢的方法,但它确实有效。我必须创建一个隐藏字段,遍历 datumtokenizer 中的每个结果并增加值。
var pisList = new Bloodhound({
//datumTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: function (d) {
//count number of PIS found and put their ID in the field
$('#numberofPIs').val(Number($('#numberofPIs').val()) + Number(1));
return tokens;
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "../Helper/LookUpPIs?list=" + $list,
cache: false
}
});
可能不是最好和最干净的方法,但它有效
alert(
Object.keys(pisList.index.datums).length
);
我一直在为一个项目使用 typeahead 和 bloodhound,我发现它真的不直观而且令人沮丧。本应花一秒钟时间完成的事情,却在一个小时的研究中结束。
无论如何,我正在尝试将结果数量提醒到我的猎犬中。
到目前为止,这是我的代码
var pisList = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "../Helper/LookUpPIs?list=" + $list,
cache: false
}
});
alert(pisList.length);
//Typeahead on project numbers
$('.pis').typeahead({
hint: true,
higlight: true,
minLength: 1
},
{
name: 'pis',
source: pisList
});
//Display project details distribution panel
$('input.pis').on('typeahead:selected', function (event, selection) {
var result = selection.match(/\((.*)\)/);
getPiInformation(result[1]);
});
return false;
}
现在我的警报 return 我未定义。我尝试了多种变体,但 none 成功了。
如果您有任何提示,请告诉我并提前致谢。
这是一种愚蠢的方法,但它确实有效。我必须创建一个隐藏字段,遍历 datumtokenizer 中的每个结果并增加值。
var pisList = new Bloodhound({
//datumTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: function (d) {
//count number of PIS found and put their ID in the field
$('#numberofPIs').val(Number($('#numberofPIs').val()) + Number(1));
return tokens;
},
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: {
url: "../Helper/LookUpPIs?list=" + $list,
cache: false
}
});
可能不是最好和最干净的方法,但它有效
alert(
Object.keys(pisList.index.datums).length
);