3
두 도구를 사용할 때 이상한 버그가 발생합니다. API에 AJAX 쿼리를 작성한 다음 localStorage에 저장되고 자동 완성 패널에 표시되는 JSON 데이터를 가져옵니다. 문제는 자동 완성 소스의 출처에 따라 패널이 다르게 반응한다는 것입니다. 난 자동 완성 소스 결과 JSON.parse (데이터)을 전달하면 .Result자동 완성 (jQuery UI) 및 로컬 저장소
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'));
}
것은 괜찮을 것이다 : 여기
는 AJAX 성공 호출 콜백 함수이다. 그러나 localStorage.getItem ('ac_source')를 넘길 경우 AC 위젯은 바람에 불고있는 AJAX 요청을 보냅니다 (내 node.js가 파싱을 시도 할 것입니다).내 코드의 다른 부분에서이 데이터에 액세스하려면 localstorage를 사용합니다 (다른 사용자 조사와 비교하고 요청이 동일하면 표시).
- 문자열? JSON.parse를 사용해야 만 사용할 수 있습니까? 자동 완성은 문자열을 검색어로 해석하는 것 같습니다. – Rup
당신이 옳았습니다, 그것은 파싱 질문이었습니다. 로컬 저장소의 데이터에 영향을 미쳐 소스 자동 완성 내에서 파싱했습니다. \t localStorage.setItem ('ac_source', raw_data); \t $ ("# search_input"). 자동 완성 ("옵션", "소스", JSON.parse (localStorage.getItem ('ac_source')) 결과); – Simon