【问题标题】:Using Prefetch Filter with typeahead.js (Using basic options)使用带有 typeahead.js 的预取过滤器(使用基本选项)
【发布时间】:2013-05-15 17:48:04
【问题描述】:

我正在使用typeahead.js。我正在使用预取选项,需要解析返回的数据。它没有抛出错误;它没有做任何事情。我已经查找了示例,但没有一个使用 Prefetch Filter 选项。

Link to the prefetch documentation

我的代码(不起作用但不会引发错误):

$('#autocomplete').typeahead('destroy').typeahead( {                                
    name: 'organizations',
    prefetch: {
        url: 'jsoncall',
        filter: function() {
                        // Blatant hardcoded return value
                        return ['test-a','test-b','test'c];
                      }
        }
    }
);

我的 HTML:

<input id="autocomplete" class="large-12" autocomplete="off" type="text" placeholder="Enter school name">

我的困惑:

0________0

【问题讨论】:

标签: javascript jquery autocomplete typeahead.js


【解决方案1】:

您可以通过filter 函数传递返回的数据,然后该函数会根据您的喜好解析数据。所以在你上面的例子中,你会做这样的事情:

$('#autocomplete').typeahead({                                
    name: 'organizations',
    prefetch: 
            {
        url: 'jsoncall',
        filter: function(data){
               // filter the returned data
               return [data.movies[0].title, data.movies[1].title, data.movies[2].title];
        }
    }
}
);

如果您返回的数据集是一个如下所示的 JSON 对象,则上述示例将有效:

movies: [{id:12865, title:Kill Bill: Volume 1, year:2003, mpaa_rating:R, runtime:111,…},…]
0: {id:12865, title:Kill Bill: Volume 1, year:2003, mpaa_rating:R, runtime:111,…}
1: {id:12862, title:Kill Bill, Volume 2, year:2004, mpaa_rating:R, runtime:137,…}
2: {id:771237417, title:Kill Bill: The Whole Bloody Affair, year:2011,     mpaa_rating:Unrated, runtime:,…}
3: {id:770998578, title:Angel of Death: Killer Nurse: A Bill Kurtis Special Report, year:2006,…}
4: {id:771352617, title:Kedi Billa Killadi Ranga, year:2013, mpaa_rating:Unrated, runtime:145,…}
total: 5

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-19
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多