Открытие MDCMenu из кнопки - PullRequest
       65

Открытие MDCMenu из кнопки

0 голосов
/ 25 октября 2019

Я хочу открыть MDCMenu с помощью кнопки из MDCTopAppBar. В документации отсутствует пример кода, как это сделать. Поэтому я пытаюсь сделать это через EventListener. Пожалуйста, дайте мне знать, если есть более плавные способы сделать это.

EvenListener жалуется, что MDCMenu не был определен.

import {MDCMenu} from '@material/menu';
import {MDCTopAppBar} from '@material/top-app-bar';
import {MDCMenuSurface} from '@material/menu-surface';

const topAppBarElement = document.querySelector('.mdc-top-app-bar');
const topAppBar = new MDCTopAppBar(topAppBarElement);

console.log('hello world');

const menu = new MDCMenu(document.querySelector('.mdc-menu'));

document.querySelector('#menu-button').addEventListener("click", () => {
   menu.open != menu.open;
});

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

Нажатие кнопки вызывает в консоли следующее:

ReferenceError: MDCMenu is not defined localhost:8080:1:14
    onclick http://localhost:8080/:1

Что-то не так с импортом. Но EvenListener просто ссылается на экземпляр, а не на класс. Я не понимаю, зачем ему понадобится MDCMenu ...

1 Ответ

0 голосов
/ 06 ноября 2019

В vanilla JS вы должны указать полное имя.

const menu = new mdc.menu.MDCMenu(document.querySelector('.mdc-menu'));

См. Fiddle

ps: я думаю, что событиеслушатель должен сделать menu.open = !menu.open;

...