2015-01-30 2 views
0

Я добавляю раскрывающийся список ко всем столбцам первой строки, используя следующий код.Удобный: добавление значений выпадающего списка динамически

var hot = new Handsontable(container, 
    { 
     data: results, 
     colWidths: [200, 200, 200, 200, 200, 200, 200, 200, 200], 
     colHeaders: false, 
     contextMenu: true, 
     cells : function (row, col, prop) { 
      if (row === 0) { 
       this.type = 'dropdown'; 
       var val = this.instance.getValue(); 
       if(typeof val != 'undefined') { 
       this.source = [val, 'Code', 'Type', 'Color']; 
       } 
      } 
     } 
    }); 

В моих клетках функционируют Я пытаюсь добавить текущее значение ячейки в выпадающем списке (значения по умолчанию код, тип и цвет). Но если пользователь решил войти в «Вес» в ячейке, то я бы хотел, чтобы выпадало вниз («Вес», «Код», «Тип» и «Цвет»).

Функция выше сделала это, но не правильно ... Добавленная стоимость была заменена следующей при каждом вызове функции.

Затем я попытался создать список, в который я бы добавил значение val, и установил source в этот список.

Но я не могу не чувствовать, что есть лучший способ сделать это.

Любые указатели будут оценены!

+0

Я широко использовал динамически добавляя значения к выпадающим спискам. Можете ли вы объяснить немного лучше, что вы подразумеваете под функцией, которая работает неправильно? То, что он делает, это заменять источник (каждой строки ячейки === 0) каждый раз, когда вы делаете изменение в любой ячейке с текущим значением в каждой ячейке плюс другие. Что вы хотите точно? – ZekeDroid

+0

Вот пример поведения. Мы начинаем со следующих значений в раскрывающемся списке («Код», «Тип» и «Цвет»). Затем пользователь решает изменить значение ячейки «Код» на «Вес», в этот момент выпадающий текст читается («Вес», «Код», «Тип» и «Цвет». Теперь, если пользователь решает изменить " «Высота», «Кодекс», «Тип» и «Цвет»), но я бы хотел, чтобы он читал («Высота», «Вес», «Код», , «Тип» и «Цвет»). Короче говоря, я хочу, чтобы все значения, когда-либо введенные в первой строке, были в раскрывающемся списке. – d9120

ответ

3

Я вижу, что, по словам вашего комментария, кажется, вы хотите использовать значения APPEND в своем исходном списке. Поэтому я бы посоветовал следующее:

var hot = new Handsontable(container, 
    { 
    data: results, 
    colWidths: [200, 200, 200, 200, 200, 200, 200, 200, 200], 
    colHeaders: false, 
    contextMenu: true, 
    cells : function (row, col, prop) { 
     if (row === 0) { 
      this.type = 'dropdown'; 
      var val = this.instance.getValue(); 
      if(typeof val != 'undefined') { 
      this.source.push(val); // to add to the beginning do this.source.unshift(val) instead 
      } 
     } 
    } 
}); 

Что это значит, добавьте текущее значение в список источников. Таким образом, при следующем вводе значения он будет добавлен, а не заменен.

+0

Отлично! help – d9120

+0

Есть ли способ добавить данные изменения выпадающего списка при изменении любого другого раскрывающегося списка? Я получаю вызов после ответа на вызов, но еще не удалось. –

+0

Не могли бы вы задать вопрос с более подробным объяснением? Вы МОЖЕТЕ сделать то, предлагая, но специфика может быть сложной – ZekeDroid

-4
<select ng-repeat="myModel"> 
<option value=1>First Selection</option> 
<option value=2>Second Selection</option> 
</select> 
+1

Подумайте, объясните, что делает ваш код и как он отвечает на вопрос. – ZekeDroid

Смежные вопросы