【问题标题】:Dojo FilteringSelect - Full JSON Response Data Not VisibleDojo FilteringSelect - 完整的 JSON 响应数据不可见
【发布时间】:2016-02-02 02:49:57
【问题描述】:

尝试将 jQuery 自动完成转换为 Dojo 版本。最初遵循此建议 (Textbox autocomplete with DOJO),但改用 JsonRest。

当输入输入(例如“th”)时,我可以在控制台中看到正确的 JSON 响应 [{"id":"thing1","label":"thing1"},{"id":"thing2","label":"thing2"},{"id":"thing3","label":"thing3"}],但屏幕上没有显示选项列表。当焦点离开目标 input 时,它总是使用第一个元素(本例中的“thing1”)自动完成。

// DOM Element
<div id="things"></div>

// Get data
var jsonStore = new JsonRest  ({  
    target: "/ajax_suggest/autocomplete"
});

// Autocomplete attempt
ready(function(){

    var thingSearch = new FilteringSelect({
        id: "things",
        name: "things",
        store: jsonStore,
        placeHolder: "Search the things...",
        searchAttr: "term",
        onSearch: function(results, query) {
            console.log(JSON.stringify(results));
        }                   
    },"things");

    thingSearch.startup();

});

所以,在这一点上,我很满意在处理 input 数据后数据正确到达,最终,input 的内容是“自动完成的”,但我错过了一些东西,或者还没有掌握一些东西,这是获得显示完整响应的基础!

【问题讨论】:

    标签: javascript json dojo


    【解决方案1】:

    您有 searchAttr: "term",但“术语”不在您的 JsonRest 商店中 - 我想您希望它是 searchAttr: "label"

    【讨论】:

    • 啊哈!谢谢,@GavinR!我不确定你最初在说什么,因为我对searchAttr 的理解是它为我的处理脚本设置了 GET 变量的名称(即我的脚本需要“术语”,所以它不想要成为“标签”)。我碰巧遇到了参考指南 (dojotoolkit.org/reference-guide/1.9/dijit/form/…) 中的一个部分,它触发了一个灯泡时刻,然后我明白了你的意思。将商店更改为[{"id":"thing1","term":"thing1"}...,你瞧,它成功了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 2016-06-03
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多