Динамически добавлять элементы в меню MDL
Я хочу динамически добавлять пункты меню в меню MDL. Однако я не понял, как зарегистрировать новые элементы в mdl, чтобы они работали правильно.
Вот кодекс, показывающий другое поведение. Примечательно, что динамический элемент не имеет волнового эффекта и не закрывает меню при нажатии.
Этот код ручка использует componentHandler.upgradeElement
как на вновь созданный элемент, так и на оригинальный элемент меню безрезультатно. Я заметил, что правильно созданные пункты меню также имеют другой класс (mdl-js-ripple-effect
) в дополнение к некоторым другим атрибутам, но добавление этого класса вручную или попытка слиться с данными элемента привело к большому количеству ошибок в javascript mdl. Я предполагаю, что все, что мне нужно, - это несколько правильных вызовов методов componentHandler, но я не смог найти никакой документации по его правильному использованию с подэлементами.
1 ответ
К сожалению, в настоящее время это довольно сложно, и на самом деле это приведет к проблемам с производительностью из-за ошибок. Не рекомендуется.
Лучшее, что можно сделать, это уничтожить меню и перестроить его на лету.
MDL предназначен для более статичных сайтов, Polymer рекомендуется для сайтов, требующих более сложных элементов управления и динамического построения.
Вы также можете пойти по пути не использования нашего JS и написания собственного компонента для этой цели.