웹 서비스를 사용하여 선택 목록을 채우는 경우 동일한 선택 방법을 사용하여 코드 수를 제한하고 시도하는 것이 이상적입니다. 여기에 내 웹 서비스 호출을 만들기 위해 사용하는 방법입니다 :배열을 자바 스크립트 함수로 전달
function GetColourReferences(self) {
$.ajax({
async: false,
cache: false,
type: 'GET',
url: '/GetColourReferences',
success: function (data) {
self.colourReferences(data);
}
});
}
내가 비슷한 시도했습니다 다음하지만 나는 그것이 동작하지 않습니다 - 그것은 심지어 가능하다? 여기
function GetReferences(self, list, refUrl) {
$.ajax({
async: false,
cache: false,
type: 'GET',
url: refUrl,
success: function (data) {
list(data);
}
});
}
(나는 넉 아웃을 사용하고) 내가 전화 줄 방법은 다음과 같습니다 :보고에 대한
GetReferences(self, self.colourReferences, '/GetColourReferences');
감사
일반적인주의 사항. 동기식 Ajax 호출을 결코 사용하지 마십시오 (절대로 * 절대로 ** 절대로 ** 사용하지 마십시오). 그들이 존재한다는 사실을 잊어 버려라. – Tomalak
예, SYNCHRONOUS AJAX CALLS를 사용하지 마십시오. 정말 엉망이됩니다. 거의 100 % 보장됩니다. 콜백에있는 모든 것을 수동으로 중첩하거나, 또는 콜롬의 비동기 라이브러리를 사용하여 콜백을 관리하십시오 (https://github.com/caolan/async). – sajawikio
배열을 함수로 전달하려면 myfunction (myarray)을 사용하면됩니다. 그러나 귀하의 경우 왜 선택 목록의 배열을 가지고, 그 배열을 반복하고 각 선택 항목에 대해 원하는 모든 함수를 호출해야합니까? caolan의 비동기 라이브러리를 사용하면 async.forEachSeries 및/또는 async.waterfall을 사용하여 순서가 비동기 적으로 완료되고 비동기 적으로 완료 될 때까지 기다릴 수 있습니다. – sajawikio