Javascript 通过编程创建选项获得更多数据

Javascript 通过编程创建选项获得更多数据,javascript,jquery,jquery-select2,jquery-select2-4,Javascript,Jquery,Jquery Select2,Jquery Select2 4,我正在使用select2v4。我有一个对象,我想得到该对象的所有数据。当我选择and选项并使用$(_id).select2('data')[0])时,它返回所选对象的所有数据 但在编辑的情况下,当我以编程方式添加选项时 var option = new Option(this.device.serial, this.device.id.toString(), true, true); this.objRef.append(option).trigger('change');

我正在使用select2v4。我有一个对象,我想得到该对象的所有数据。当我选择and选项并使用$(_id).select2('data')[0])时,它返回所选对象的所有数据

但在编辑的情况下,当我以编程方式添加选项时

     var option = new Option(this.device.serial, this.device.id.toString(), true, true);
     this.objRef.append(option).trigger('change');
再次选择created选项,它只返回对象的id和文本,而不是所有数据。如果使用自定义数据适配器,它将返回所有数据:

    CustomDataAdapter.prototype.updateOptions = function (data) {          
      let myData: any[] = [data];
      this.$element.find('option').remove();
      this.addOptions(this.convertToOptions(myData));
    }
但我不喜欢使用自定义适配器。有没有办法将对象转换为与数据适配器相同的选项,以便下次选择时再次包含所有数据

下面是select2的定义。数据是在之前加载的,我使用ajax只是为了分页和搜索:

  var $ddResult = $(_id).select2({
  placeholder: '',
  selectOnClose: _selectOnClose,
  tags: _tags,
  allowClear: _allowClear,
  minimumResultsForSearch: 5,
  ajax: {
    transport: function (params, success, failure) {
      let pageSize = 30;
      let term = (params.data.term || '').toLowerCase();
      let page = (params.data.page || 1);

      if (timer)
        clearTimeout(timer);

      timer = setTimeout(function () {
        timer = null;
        let results = _data
          .filter(function (f) {
            return f.text.toLowerCase().includes(term);
          });
        let paged = results.slice((page - 1) * pageSize, page * pageSize);
        let options = {
          results: paged,
          pagination: {
            more: results.length >= page * pageSize
          }
        };
        success(options);
      }, params.delay);
    }
  },     
})