매개 변수를 받고 [selectize.js] [1]을 호출하는 함수가 있습니다.다른 매개 변수로 selectize를 호출하려고했지만 이전 값으로 실행됩니다.
처음에는 param
이 1과 같아서 myFunc
이라고 부릅니다. 작동하는 데이터는 서버에서 가져온 것으로서 드롭 다운 목록이 표시됩니다.
하지만 나중에 내가 다른 param
값 myFunc
를 호출의 2.
을 가정 해 봅시다 그리고 myFunc
2 수신 콘솔에서 볼 수 있지만, load
기능과 아약스 success
기능 로그 (1) 콘솔로, 데이터가 온다 param
값이 나는 param
와 myFunc
2 처음으로 동일 호출하는 경우 1.
을했다 경우 param
값이 내가 시도 2.
경우로, 데이터가 온다 load
및 ajax success
기능을 모두 cache: false
에 추가하십시오. 그러나 load
함수는 이전 param
값을 계속 사용합니다. 여기
function myFunc(param) {
console.log(param);
$("#select-control").selectize({
valueField: 'id',
labelField: 'name',
searchField: 'name',
options: [],
create: false,
render: {
option: function(item, escape) {
return '<div>' + escape(item.name) + '</div>';
}
},
score: function(search) {
return function(item) {
return 1;
}
},
load: function (query, callback) {
console.log("selectize loading data");
console.log(param);
this.clearOptions();
$.ajax({
url: "/api/some/end/point",
type: 'GET',
data: {
q: query,
some_param: param
},
error: function() {
callback();
},
success: function (res) {
console.log(res);
console.log(param);
callback(JSON.parse(res));
},
});
}
});
}
난 그냥
param
글로벌 변수를 추가 콘솔
23378 // myFunc received this value as param
selectize loading data // load function is called
23378 // param value inside load function
{/* here is the response, which contains data */}
23378 // param value inside ajax success function
19476 // myFunc received new value
selectize loading data // load function is called
23378 // but the load function uses the first param value, it should be 19476 here
{/* the same old response, param didn't change*/}
23378 // and ajax success function also uses the old value, it also should be 19476
당신이 모든 로그의 인쇄 화면을하십시오 넣을 수 몰라? 만약 내가 올바른 생각이라면, 첫 번째'콘솔'은 콘솔에서 값을 올린 –
로드 기능 내에서'콘솔 '과 다른 것을 출력 할 수 없다. 처음으로'console'은 처음에는 다른 것을 출력하지 않지만'myFunc'를 두 번 호출 할 때 출력합니다. – sasha199568