当前位置: 首页 > 知识库问答 >
问题:

未定义类型先行搜索建议-远程Ajax

史朗
2023-03-14

我试图使typefirst远程源到一个Web方法,这将与JSON格式的结果resond。

Ajax正在获得成功,而且它已经成功了;It’正确地复述结果。下面代码中的控制台将按如下方式打印

[{"id":"1","value":"Midun"},{"Id":"2","value":"Midhun2"}]

但是,typeahead建议都没有定义

var typeHeadEngine=new Bloodhound({name:'name',remote:{url:'page.aspx/method',

        ajax: {
            type: "POST",
            data: JSON.stringify({ "query": '%QUERY' }),
            contentType: "application/json; charset=utf-8",
            dataType: "text",                
            success: function (data) {
                var obj = JSON.parse(data);
                console.log(obj.d);
                return obj.d;
            }

        }

    },
    datumTokenizer: function (d) {
        return Bloodhound.tokenizers.whitespace(d.val);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace
});

typeHeadEngine .initialize();

$('.typeahead').typeahead({
    hint: true,
    highlight: true,
    minLength: 3
},   {
  name: 'Name',
  displayKey: 'Value',
  source: typeHeadEngine.ttAdapter()

});

Web方法正在获取JSON字符串,该字符串正在转换为ajax成功函数中的数组。在谷歌期间,我发现typefirst需要数组,而不是JSON对象,所以我转换成数组。

我通过大量类似的问题来弄清楚。但是我不能这样做,
有人能帮忙找出我在这里做错了什么吗?

共有1个答案

于捷
2023-03-14

您不应该使用ajax选项中的success字段来转换JSON,而应该使用侦探犬提供的filter字段:

var typeHeadEngine = new Bloodhound({
name: 'Name',
remote: {
    url: 'page.aspx/method',
    ajax: {
        type: "POST",
        data: JSON.stringify({
            "query": '%QUERY'
        }),
        contentType: "application/json; charset=utf-8",
        dataType: "text"
    },
    filter: function (data) {
        var obj = JSON.parse(data);
        console.log(obj.d);
        return obj.d;
    }
},
datumTokenizer: function (d) {
    return Bloodhound.tokenizers.whitespace(d.val);
},
queryTokenizer: Bloodhound.tokenizers.whitespace
});
 类似资料:
  • 我使用带有自定义适配器和提供程序的SearchView(ActionBar)实现了自定义搜索。我遇到的问题是ContentProvider的query()方法只被调用一次,第一次在SearchView中输入东西!如果我继续在视图中键入,则不会调用查询,这样建议列表就不会得到更新。 知道为什么ContentProvider查询方法只被调用一次吗?不是每次我打字的时候?

  • 问题内容: 我正在为基于php的网站创建一个搜索引擎。我需要搜索一个mysql表。 事实是,搜索引擎必须非常“智能”,以便用户可以轻松找到他们的商品(这是一个分类网站)。 我目前已使用以下代码设置了FULLTEXT搜索: 但这还不够… 例如,假设该字段包含类似的内容。如果我搜索,我将不会得到任何结果。尾数(’ci’)只是汽车型号中许多尾数之一,在搜索表时必须将其考虑在内。 或者,如果该字段是什么?

  • 在弹性搜索中,我将记录存储在命名空间和主题中。这些是简单的对象,只有(string)和。 我想通过自动完成搜索名称,为此我试图使用索引搜索。 ElasticSearch::Transport::Transport::Transport::Errors::BadRequest:[400]{“error”:{“root_cause”:[{“type”:“illegal_argument_excepti

  • 问题内容: 我遇到了这个JSON代码。我注意到它利用了价值。在哪里可以找到有关此值类型的更多信息? 问题答案: *即使在javascript中有效, *undefined 也不是有效的json值。根据官方json标准 (ECMA-404,第5节): JSON值可以是对象,数组,数字,字符串,true,false或null。 对于json,请使用 null 而不是 undefined :

  • 我是一个新的编码和上课目前,我不知道什么似乎是这里的问题,但我试图阅读和挑选特定的信息,从一个单独的文本文件。非常感谢任何帮助!

  • 主要内容:深度优先搜索(简称“深搜”或DFS),广度优先搜索,总结前边介绍了有关图的 4 种存储方式,本节介绍如何对存储的图中的顶点进行遍历。常用的遍历方式有两种: 深度优先搜索和 广度优先搜索。 深度优先搜索(简称“深搜”或DFS) 图 1 无向图 深度优先搜索的过程类似于树的先序遍历,首先从例子中体会深度优先搜索。例如图 1 是一个无向图,采用深度优先算法遍历这个图的过程为: 首先任意找一个未被遍历过的顶点,例如从 V1 开始,由于 V1 率先访问过了,所以