Ajax Jquery对象不像javascript的对象

时间:2017-08-23 05:08:15

标签: javascript jquery ajax typeahead.js bloodhound

我正在使用typeahead JS在我的控件中设置typeaheads。

输入类对象数组的代码如下:

        var companylist2 = [
            { word: "Alabama" },
            { word: "Alaska" },
            { word: "Arizona" },
            { word: "Arkansas" },
            { word: "California" },
            { word: "Colorado" }
        ];


        // Get Company Name Typeahead
        var states = new Bloodhound({
            datumTokenizer: function (d) {
                return Bloodhound.tokenizers.whitespace(d.word);
            },
            queryTokenizer: Bloodhound.tokenizers.whitespace,
            limit: 5,
            local: companylist2
        });

但是我想从我的后端动态设置它,所以我使用Ajax Jquery来填充这样的类对象数组:

        $(function () {
            $.ajax({
                type: "POST",
                url: "mypage.aspx/getCompanylist",
                contentType: "application/json",
                dataType: "json",
                success: function (msg) {
                    companylist = msg.d;
                    alert(companylist[0]["word"]);
                    alert(companylist[1]["word"]);
                }
            });
        });

公司列表[0] [" word"]和公司列表[1] [" word"]的警报都显示我想要显示的内容但是当我将源更改为我的JQuery中的那个,typeahead不起作用

1 个答案:

答案 0 :(得分:0)

尝试在success

中配置Typeahead
$(function () {
    $.ajax({
        type: "POST",
        url: "mypage.aspx/getCompanylist",
        contentType: "application/json",
        dataType: "json",
        success: function (msg) {
            companylist = msg.d;
            alert(companylist[0]["word"]);
            alert(companylist[1]["word"]);

            // Get Company Name Typeahead
            var states = new Bloodhound({
                datumTokenizer: function (d) {
                    return Bloodhound.tokenizers.whitespace(d.word);
                },
                queryTokenizer: Bloodhound.tokenizers.whitespace,
                limit: 5,
                local: companylist
            });

        }
    });
});

可能CallbackAsynchronous有帮助。