2

Я делаю проверку для состояния пользователя и хотел бы включить и отключить 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. Спасибо за любую помощь.

+0

вы могли бы обеспечить скрипку/plunker? – Deep

ответ

1

Оказывается, я позабыл передать службу меню вместе с 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); 
     // -----------^ 
    } 
}; 
Смежные вопросы