Я хотел бы вызвать закрытие события mouseleave на компоненте md-menu. Я использую версию 0.7.4 библиотеки vue-materiallibrary, и при использовании эта документация говорится, что существует метод закрытия.
Как мне вызвать этот метод? Я пробовал следующее:
<md-menu md-size = "1" ref = "aRef" id = "aRef">
<div @mouseleave = "this.$refs['aRef'].close()">
...other stuff...
</md-menu>
Когда я запускаю это, я получаю сообщение об ошибке:
Uncaught TypeError: Cannot read property 'aRef' of undefined
Я предполагаю, что это связано с тем, что компонент недоступен во время создания. Как правильно это сделать?
Я должен сказать, что md-menu фактически вложен в другой md-menu (который, кажется, работает нормально с функциональной точки зрения). Не уверен, что это портит иерархию событий.
@Gerfried такая же ошибка, я боюсь





Я наткнулся на решение для этого, когда пытался решить другую проблему (как закрыть любые другие меню перед открытием другого).
Ваша проблема в том, что вы не можете использовать this inline в шаблоне html. Вам нужно отправить событие в метод, а затем вызвать его ...
<md-menu
ref = "aRef"
@mouseleave = "closeMenu"
>
// menu contents
</md-menu>
Затем в разделе вашего сценария:
methods: {
closeMenu() {
this.$refs['aRef'].close();
}
}
вы пробовали сделать это в функции методов? @ mouseleave = "закрыть (это)"