Проблема с материализацией чипов-автозаполнение - PullRequest
0 голосов
/ 14 июля 2020

Я пытался заставить автозаполнение чипов работать как часть проекта.

Я удалил код, чтобы удалить любые странные эффекты и реплицированный код, как на сайте Materialise. Как и в прилагаемом коде, я могу заставить автозаполнение работать должным образом, но не с чипами.

Я пробовал использовать Chrome и браузеры Edge и различные комбинации тегов и имен классов, но все еще не смог заставить его работать.

Так что теперь мне нужна помощь!

Что я пропустил?

<!DOCTYPE html>
  <html>
  <head>
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
</head>
<body>
<div class="container" >
<!-- autocomplete from materialize web site -->
     <div class="row">
        <div class="col s12">
            <div class="input-field col s6">
              <i class="material-icons prefix">textsms</i>
              <input type="text" id="autocomplete-input" class="autocomplete">
              <label for="autocomplete-input">from materialize web site</label>
            </div>
        </div>
      </div>
  
  
<!-- chip autocomplete from materialize web site -->  
    <div class="row">
        <div class="col s6">
            <div id="chips-autocomplete" class="chips chips-autocomplete " ></div>
        </div>
    </div> 
</div>  <!-- container end -->

    <script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
    <script>        
        document.addEventListener('DOMContentLoaded', function() {
                options={"data": {"abel":null,"baker":null,"charlie":null},
                         "placeholder":'fred'}
        console.log (options) 
        var autoElems = document.querySelectorAll('.autocomplete');
        var attemptElems = document.getElementById("attempt");
        var chipsElems = document.getElementById("chips-autocomplete");

        var auto = M.Autocomplete.init(autoElems, options);
        var chips = M.Chips.init(chipsElems, options);
        });
    </script>
</body>
</html>

1 Ответ

0 голосов
/ 15 июля 2020

Данные инициализации для автозаполнения микросхем неверны. Из документов :

  $('.chips-autocomplete').chips({
    autocompleteOptions: {
      data: {
        'Apple': null,
        'Microsoft': null,
        'Google': null
      },
      limit: Infinity,
      minLength: 1
    }
  });

С Vanilla JS:

document.addEventListener('DOMContentLoaded', function() {
    var elems = document.querySelectorAll('.chips-autocomplete');
    var instances = M.Chips.init(elems, {
        autocompleteOptions: {
          data: {
            'Apple': null,
            'Microsoft': null,
            'Google': null
          },
          limit: Infinity,
          minLength: 1
        }
      });
  });

вы просто устанавливаете data (в кавычках, когда не должно быть кавычки). Это должно быть autocompleteOptions как объект, а затем data внутри этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...