Javascript 自动完成(jqueryui)和本地存储
我只是在使用这两个工具时遇到了一个奇怪的错误。 我对API进行AJAX查询,然后检索存储在localStorage中并显示在自动完成面板中的JSON数据。问题在于,根据自动完成源的来源,面板的反应会有所不同 以下是AJAX成功时调用的回调函数:Javascript 自动完成(jqueryui)和本地存储,javascript,html,jquery-ui,local-storage,Javascript,Html,Jquery Ui,Local Storage,我只是在使用这两个工具时遇到了一个奇怪的错误。 我对API进行AJAX查询,然后检索存储在localStorage中并显示在自动完成面板中的JSON数据。问题在于,根据自动完成源的来源,面板的反应会有所不同 以下是AJAX成功时调用的回调函数: function _company_names(data) { localStorage.setItem('ac_source', JSON.parse(data).Result); // Works fine $("#sear
function _company_names(data)
{
localStorage.setItem('ac_source', JSON.parse(data).Result);
// Works fine
$("#search_input").autocomplete( "option", "source", JSON.parse(data).Result);
// Send an AJAX request
$("#search_input").autocomplete( "option", "source", localStorage.getItem('ac_source'));
}
如果我将JSON.parse(data.Result)作为结果传递给autocomplete源代码,就可以了。但是,如果我传递localStorage.getItem('ac_source'),ac小部件将发送一个AJAX请求(不使用我自己的函数)(我的node.js将尝试解析它,等等)
我正在使用localstorage从代码的其他部分访问这些数据(将其存储以与其他用户研究进行比较,并在请求相同时显示这些数据)。您只能在本地存储中存储字符串数据:
localStorage.setItem('ac_source', '{"key":"data","key1":"data1"}');
$("#search_input").autocomplete( "option", "source", JSON.parse(localStorage.getItem('ac_source')).Result);
getItem-字符串的返回类型是什么?在使用它之前,是否也需要对其进行JSON.parse?看起来autocomplete正在将字符串解释为要查询的URL。您是对的,这是一个解析问题。我修复了影响本地存储中数据的问题,然后在源自动完成中对其进行解析:localStorage.setItem('ac_source',raw_data');$(“#搜索输入”).autocomplete(“选项”,“源”,JSON.parse(localStorage.getItem('ac#u源”)).Result);