typeahead 0.11.1 remote不显示返回的数据

时间:2017-06-15 05:36:45

标签: asp.net-mvc typeahead.js

我正在使用我的MVC应用程序实现最新版本的typeahead。情况是,我得到了json结果,这很好并且经过验证。

在typeahead的返回部分,我发出警报,我可以看到所有返回的结果都在那里。但是在显示方面,没有任何东西被展示出来。控制台中也没有错误消息。 XHR完全没问题。

坦率地说,我不知道为什么会这样?你能不能提出任何想法......谢谢你提前

使用的Typeahead版本:0​​.11.1

以下是我的代码..

<div class="tt-container">
    <input  id="customer" name="customer" type="text" value="" class="form-control" required />
</div>

预先声明

var customers = new Bloodhound({
                datumTokenizer: function (d) { return Bloodhound.tokenizers.whitespace(d.value); },
                queryTokenizer: Bloodhound.tokenizers.whitespace,
                remote: {
                    url: '/api/customer?query=%QUERY',
                    wildcard: '%QUERY',
                    filter: function(customers) {
                        //debugger;
                        return $.map(customers,function(user) {
                            //debugger;
                            alert(user.customerName);
                            return {
                                value: user.customerName
                            };
                        });
                    }
                },
                ajax: {
                    type: "GET",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    beforeSend: function(jqXhr, settings) {
                        var authHeaders;
                        // pull apart jqXHR, set authHeaders to what it should be
                        //debugger;
                        jqXhr.setRequestHeader('Access-Control-Allow-Origin', '*');
                    }
                }
            });

            customers.initialize();

            $('#customer').typeahead({
                    minLength: 3,
                    highlight: true
                },
                {
                    name: 'customers',
                    displayKey: 'value',
                    source: customers.ttAdapter()
                });

1 个答案:

答案 0 :(得分:0)

我在这个问题上挖掘,发现typeahead几乎没有解决的问题,这就是其中之一。所以我决定使用jquery autocomplete,它具有typeahead的所有功能。