如何从控制器功能打开 Angular Material 菜单?
How can I open an Angular Material menu from a controller function?
我正在检查用户状态,并想相应地启用和禁用 menu。
在标记中:
<a ... ng-click="ctrl.userMenu($event)"></a>
在控制器中:
ctrl.userMenu = function (e) {
if (ctrl.user.has.something) {
e.preventDefault();
return false;
} else {
ctrl.openMenu($mdOpenMenu, e);
}
};
但是,如果其他情况为真,则不会触发菜单。我怀疑范围问题。我还尝试将菜单服务调用包装在匿名函数中。如果直接从 ng-click
指令进行调用,菜单将按预期打开。感谢您的帮助。
原来我忘记传递菜单服务以及 ng-click
指令:
<a ... ng-click="ctrl.userMenu($mdOpenMenu, $event)"></a>
// ---------------------------------^
ctrl.userMenu = function (m, e) {
// -----------------------^
if (ctrl.user.has.something) {
e.preventDefault();
return false;
} else {
ctrl.openMenu(m, e);
// -----------^
}
};
我正在检查用户状态,并想相应地启用和禁用 menu。
在标记中:
<a ... ng-click="ctrl.userMenu($event)"></a>
在控制器中:
ctrl.userMenu = function (e) {
if (ctrl.user.has.something) {
e.preventDefault();
return false;
} else {
ctrl.openMenu($mdOpenMenu, e);
}
};
但是,如果其他情况为真,则不会触发菜单。我怀疑范围问题。我还尝试将菜单服务调用包装在匿名函数中。如果直接从 ng-click
指令进行调用,菜单将按预期打开。感谢您的帮助。
原来我忘记传递菜单服务以及 ng-click
指令:
<a ... ng-click="ctrl.userMenu($mdOpenMenu, $event)"></a>
// ---------------------------------^
ctrl.userMenu = function (m, e) {
// -----------------------^
if (ctrl.user.has.something) {
e.preventDefault();
return false;
} else {
ctrl.openMenu(m, e);
// -----------^
}
};