У меня есть функция, которая получает параметр, а затем вызывает [selectize.js] [1].пытается вызвать selectize с другим параметром, но он работает со старым значением
Первоначально я звоню myFunc
с param
равным 1. Он работает, данные поступают с сервера, и я получаю раскрывающийся список с ним.
Но позже я называю myFunc
с другим param
значения, скажем 2.
И я вижу в консоли, что myFunc
получает 2, но load
функции и Аякс success
журнал функция 1 утешать, и данные поступают в если param
значение было 1.
Если я называю myFunc
с param
равен 2 в первый раз, данные поступают, как если 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));
},
});
}
});
}
Здесь редактируется с консоли
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
Вы можете поставить экран печати всех журналов, пожалуйста? Если я правильно думаю, его невозможно, чтобы первая «консоль» выдавала что-то отличное от «консоли» внутри функции загрузки –
только что опубликованные значения из консоли. В первый раз, когда вы правы, первая «консоль» не выводит что-то другое, но при вызове 'myFunc' второй раз это делает. – sasha199568