Selectize :动态更改设置

Selectize : Change settings dynamically

我很难找到一种方法来即时更改 selectize 的设置

在我的 js 的上半部分,我像这样启动了我的选择:

    var selectize = $('select').selectize({
    .... others params...,
    .... others params...,
    load: function(query, callback) {
        $.ajax({
            url: "http://sample.com/test1", // Old remote url
            type: 'GET',
            data : {
                search : query
            },
            dataType : "json",
            error: function() {
                callback();
            },
            success: function(results) {
                if(results.data == undefined){
                    callback();
                }else{
                    callback(results.data); 
                }
            }
        });
    }
})[0].selectize;

有时,我需要更改单击按钮时选择的 url。我尝试了下面的代码。

selectize.clear();
selectize.clearOptions();
selectize.load(function(callback) {
    this.settings.url = "http://sample.com/test2";  // New remote url
    $.ajax({            
        url: this.settings.url,
        success: function(response) {
            callback(response.data);
        },
        error: function() {
            callback();
        }
    })
});

选项已更新,但 url 仍然相同。当用户在搜索框中键入时,搜索查询使用旧的 URL.

我已经成功找到了解决方案,但是有点乱。

selectize.settings.load =  function(query, callback) {
    $.ajax({
        url: "http://sample.com/test2", // NEW remote url
        type: 'GET',
        data : {
            search : query
        },
        dataType : "json",
        error: function() {
            callback();
        },
        success: function(results) {
            if(results.data == undefined){
                callback();
            }else{
                callback(results.data); 
            }
        }
    });
}

我希望有人能找到除此之外更好的解决方案。如果selectize的文档中有这个就更好了。