我正在寻找的是显示建议,不仅仅是单词的开头,而且是否符合单词的任何部分。
例如,如果我有一个单词列表[Manimal,animal,person,erson]
当我输入动物或 ani 时,它应显示动物和动物,或者如果我输入儿子应该同时显示人和儿子。
我怎么能用typeahead和bloodhound来做这件事?
我试过了
var jobCodes = new Bloodhound({
datumTokenizer: function (d) { return [d.JobName]; },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: "/api/jobservice/getjobcodes"
});
Or
var jobCodes = new Bloodhound({
datumTokenizer: function (d) { return Bloodhound.tokenizers.nonword(d.JobName); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: "/api/jobservice/getjobcodes"
});
答案 0 :(得分:0)
创建/获取要检查的字符串数组,然后定义一个函数,该函数将字符串数组作为第一个参数,将子字符串作为第二个参数。
然后创建一个空数组,如果存在结果,将保存结果。
循环遍历数组中包含的每个字符串,如果其中任何字符串包含子字符串,则将该字符串推送到结果数组中。
最后,如果有结果,请退回。否则返回“无结果”。
var phrases = ["lazy", "little", "laughing", "ladies"];
var checkStringsForSubString = function(str, subStr) {
var results = [];
for (var i = 0; i < phrases.length; i++) {
if (str[i].indexOf(subStr) != -1) {
results.push(str[i]);
}
}
if (results.length > 0) {
return results;
} else {
return "no results";
}
};
checkStringsForSubString(phrases, "la");