문제

간단한 검색 양식을 위해 jQuery의 자동 완성 플러그인을 사용하고 있습니다. Auto-Complete를 사용하여 JSON 객체 데이터를 배열로 변환하는 데 어려움이 있습니다.

내 코드 :

var listOfOrderedByNames = getAutocompleteData();
$('#OrderedBy').autocomplete(listOfOrderedByNames);

function getAutocompleteData() {
    var output;
    $.getJSON('AJAX/GetOrderedByNames', function(data) {
        $.each(data, function(index, optionData) {
            output += optionData + "|";
        });
    });
    return output;
}

반환 된 JSON 데이터는 다음과 같습니다.

    ["Jimmy","John", "Etc",null]

어떤 이유로 내가 그로부터 돌아 오는 것 같아 getAutocompleteData 기능은 빈 문자열이며 무엇이 잘못되었는지 모르겠습니다.

도와주세요!

도움이 되었습니까?

해결책

왜냐하면 $.getJSON 비동기입니다. 요청을 보내 자마자 기능 getAutocompleteData() 계속 실행하여 아무것도 반환합니다.

GetJson 메소드에 전달하는 콜백 함수의 모든 것을 동봉해야합니다.

var output;
$.getJSON('AJAX/GetOrderedByNames', function(data) {
    var output = "";
    $.each(data, function(index, optionData) {
        output += optionData + "|";
    });
    $('#OrderedBy').autocomplete(output);
});

다른 팁

변경해보십시오 var ouput; 라인으로 var output = '';

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top