0

我升级到 Bootstrap 3.0 版,我确实看到 typeahead 模块不存在。我正在使用 Web 服务,并且我使用以下方法来调用我的函数并填充我的数据集。但是,使用 twitter typeahead.js,我如何调用我的函数,或者如何仍然使用旧的 typeahead 模块?非常感谢您的帮助。谢谢。

            $("#searchVendor").typeahead({
            source: function (query) {
                    vieModel.callWebServiceFunctionList(counter1, query, isListCleared);   
       });
4

1 回答 1

0

Typeahead.js 没有直接使用函数作为source. 传递查询值的标准方法是使用包含%QUERYremote属性中的 URL 字符串:

$("#searchVendor").typeahead({
            remote: '.../data.json?name=%QUERY'   
});

但是,在您的情况下,这可能还不够。remote也可以是一个对象,带有一个url和一个replace应用于 URL 的函数。

所以,做一个这样的函数callWebServiceFunctionList只是返回 URL 而不是实际调用 Web 服务。

$("#searchVendor").typeahead({
            remote: {
               url: '.../data.json?counter=%COUNTER&query=%QUERY&isListCleared=%ISLISTCLEARED',
               replace: function(url, query) {
                  return url.replace('%COUNTER', counter1).replace('%QUERY', query).replace('%ISLISTCLEARED', isListCleared);
               }
});

请参阅对象的文档remote

或者,您可以只为 Bootstrap 2.x 的预输入部分获取 JS,虽然您可能会遇到格式问题,但它本身似乎可以正常工作(JSFiddle 演示)。

于 2013-10-31T03:58:38.890 回答