typeahead.js-渲染事件-一次争论中没有得到建议数组

mp3*_*uck 5 javascript jquery typeahead typeahead.js

我正在尝试使用typeahead渲染事件,但无法正确传递参数。

参考https://github.com/twitter/typeahead.js/blob/master/doc/jquery_typeahead.md#custom-events,呈现事件应通过4个参数传递。

我已经按如下所示设置了预输入和事件处理程序:

         $('#input').typeahead({
         hint: true,
         highlight: true,
         minLength: 1
     },
 {
     name: 'items',
     source: items
 })
 .on('typeahead:render', onRender);

 function onRender($event, $suggestions, $async, $dataSet)
         {
}
Run Code Online (Sandbox Code Playgroud)

预期的渲染事件文件,但未正确传递参数。

$ event是指定的jQuery事件对象。.但是,我希望第二个参数$ suggestions是一个包含当前建议的数组,但它仅包含第一个建议。.接下来的两个参数分别包含第2个和第3个建议,而不是异步标志和预期的数据集名称。

请参阅以下示例,以了解我在做什么。参数已发送到控制台。

         $('#input').typeahead({
         hint: true,
         highlight: true,
         minLength: 1
     },
 {
     name: 'items',
     source: items
 })
 .on('typeahead:render', onRender);

 function onRender($event, $suggestions, $async, $dataSet)
         {
}
Run Code Online (Sandbox Code Playgroud)
var substringMatcher = function(strs) {
  return function findMatches(q, cb) {
    var matches, substringRegex;

    // an array that will be populated with substring matches
    matches = [];

    // regex used to determine if a string contains the substring `q`
    substrRegex = new RegExp(q, 'i');

    // iterate through the pool of strings and for any string that
    // contains the substring `q`, add it to the `matches` array
    $.each(strs, function(i, str) {
      if (substrRegex.test(str)) {
        matches.push(str);
      }
    });

    cb(matches);
  };
};

var states = ['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California',
  'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii',
  'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana',
  'Maine', 'Maryland', 'Massachusetts', 'Michigan', 'Minnesota',
  'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire',
  'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota',
  'Ohio', 'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island',
  'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont',
  'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'
];

console.log("starting");
$('#the-basics .typeahead').typeahead({
  hint: true,
  highlight: true,
  minLength: 1
},
{
  name: 'states',
  source: substringMatcher(states)
})
.on('typeahead:render', onRender);

   function onRender($event, $suggestions, $async, $dataSet)
         {
           console.log($event);
             console.log($suggestions);
             console.log($async);
             console.log($dataSet);
           
           }
Run Code Online (Sandbox Code Playgroud)

Fra*_*ran 5

我发现这个得到建议

x.bind('typeahead:render',
            function (ev) {
                var suggestions = Array.prototype.slice.call(arguments, 1);
            }
        );
Run Code Online (Sandbox Code Playgroud)

异步和数据集参数似乎完全丢失