【问题标题】:Why i can't load options onDropdownOpen?为什么我无法加载 onDropdownOpen 选项?
【发布时间】:2015-08-25 13:46:24
【问题描述】:

这是我的代码。 我想在打开下拉菜单时加载选项。 它从 ajax 加载数据,但现在不把它放到下拉列表中。

selectize = selectAgentField.selectize({
  create: true,
  render: {
      option: function(item, escape) {
          console.log(item);
          return '<div>'+ escape(item.agent_name) + '</div>';
      }
  },
  onChange: function(value) {
    selectedValue = value;
  },
  onDropdownOpen: function() {
    WorkersService.getIdleWorkers(function(data) {
      selectize.clearOptions();
      _.each(data, function(worker, index) {
        selectize.addOption({value: index, text: worker.attributes.name, contact_uri: worker.attributes.contact_uri});
      })
      selectize.refreshOptions(false);
    });
  }
})[0].selectize;

【问题讨论】:

    标签: javascript drop-down-menu selectize.js


    【解决方案1】:

    我没有找到明确的答案为什么上面的代码不起作用。但这是我的代码破解。我在 onFocus 事件上绑定更新,所以当我点击控件时会触发更新。

    selectize = selectAgentField.selectize({
      create: false,
    
      onChange: function(value) {
        selectedValue = value;
      },
    
      // <<<<<< Here is solution >>>>>>
      onFocus: function() {
        WorkersService.getIdleWorkers(function(data) {
          selectize.clearOptions();
          _.each(data, function(worker, index) {
            selectize.addOption({value: index, text: worker.attributes.name, contact_uri: worker.attributes.contact_uri});
          });
          selectize.refreshOptions(true);
        });
      }
    })[0].selectize;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      相关资源
      最近更新 更多