После добавления параметров для динамического выбора параметры не отображаются в разделе «Выбор / раскрывающийся список» на странице - PullRequest
0 голосов
/ 21 июня 2020

Это раскрывающийся список с префиксом только для одного (отключенного) варианта

ScreenCapture1

Here is inspect, options can be seen here but not in UI.

ScreenCapture2

HTML Code:

 Выберите агента     

Javascript Код:

var select = document.getElementById("agentList");

async function getAgents(url_) {

  await fetch(appSettings.url + url_, {
    method: 'GET',
    credentials: "include",
  })
    .then(function (promise) {
      if (promise !== null) {
        if (promise.status === 200) {
          promise.json().then(function (data) {
            let agents = data.dropdown;
            data.forEach(value => {
              var opt = new Option(value, value);
              select.appendChild(opt);
            });
          });
        }
      }
    });
}

1 Ответ

0 голосов
/ 21 июня 2020

Элемент, который вы видите в пользовательском интерфейсе, - это нечто, созданное Materialise при его инициализации, а не фактический <select>. Он не будет обновляться сам по себе, если вы измените исходный <select>.

Чтобы сделать то, что вы хотите, вам может потребоваться уничтожить экземпляр и снова инициализировать его:

// Already somewhere in your code
var select_ = document.querySelectorAll('.materialSelect');
var instance = M.FormSelect.init(select_, "");

// In the code you posted
await fetch(/* ... */)
      .then((promise) => {
        // ...
        data.forEach(value => {
          // ...
        });
        instance.destroy();
        instance = M.FormSelect.init(select_, "");
        // ...
      });
...