相关疑难解决方法(0)

Twitter Typeahead.js如何返回字符串中所有匹配的元素

默认情况下,twitter typeahead.js仅返回在字符串开头匹配的元素,例如:

来源:['type','typeahead','ahead']

查询:'类型'

返回:'type'和'typeahead'

-

查询:'提前'

回报:'前进'

我想让它返回'前进'和'打字'

我的代码:

var clients = new Bloodhound({
    datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 10,
    prefetch: {
        url: '/clients.json',
        filter: function(list) {
            return $.map(list, function(value) { return { name: value }; });
        }
    }
});

clients.initialize();

$('.client').typeahead(null, {
    displayKey: 'value',
    source: clients.ttAdapter(),
    minLength: 1,
});
Run Code Online (Sandbox Code Playgroud)

已经有一个问题,但我不明白答案.

javascript twitter typeahead typeahead.js

18
推荐指数
1
解决办法
5785
查看次数

Typeahead不敏感的口音

我试过这个解决方案但是我收到了这个错误:

未捕获的ReferenceError:未定义规范化

这是我的代码:

var charMap = {
    "à": "a", "â": "a", "é": "e", "è": "e", "ê": "e", "ë": "e",
    "ï": "i", "î": "i", "ô": "o", "ö": "o", "û": "u", "ù": "u"
};

var normalize = function(str) {
      $.each(charMap, function(chars, normalized) {
        var regex = new RegExp('[' + chars + ']', 'gi');
        str = str.replace(regex, normalized);    
      });
      return normalized;
    }

var queryTokenizer = function(q) {
    var normalized = normalize(q);
    return Bloodhound.tokenizers.whitespace(normalized);
};

var spectacles = new Bloodhound({
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), …
Run Code Online (Sandbox Code Playgroud)

javascript typeahead.js twitter-typeahead bloodhound

4
推荐指数
1
解决办法
5098
查看次数