scope. $ на $ mdMenuOpen не работает - PullRequest
0 голосов
/ 11 мая 2018

Я пытаюсь прослушать событие $mdMenuOpen в моей директиве.

.directive('mdPreventFocus', function () {
    return {
        restrict: 'A',
        link: function (scope, element, attrs, $mdOpenMenu) {
            element.on('click', function () {

                console.log(scope);

                scope.$on('$mdMenuOpen', function(ev, element) {
                    console.log('open');
                });

            })
        }
    }
})


<md-menu md-position-mode="target-right target" md-offset="0 42">
    <md-button class="md-icon-button rounded dtp-btn-ok" ng-click="$mdMenu.open($event);" md-prevent-focus>
        <i class="material-icons">more_horiz</i>
    </md-button>
    <md-menu-content class="person-popup contact-popup">
        <md-card md-theme-watch>
            <md-card-title>
                <md-card-title-text>
                    <span class="md-headline">Headline</span>
                    <span class="md-subhead">Subhead informatie</span>
                </md-card-title-text>
            </md-card-title>
            <md-card-actions layout="row" layout-align="end center">
                <md-button title="Title informatie" class="md-icon-button icon-margin">
                    <i class="material-icons">phone</i>
                </md-button>
                <md-button title="Title informatie" class="md-icon-button icon-margin">
                    <i class="material-icons">email</i>
                </md-button>
                <md-button title="Title informatie" class="md-icon-button icon-margin">
                    <i class="material-icons" >forward</i>
                </md-button>
            </md-card-actions>
        </md-card>
    </md-menu-content>
</md-menu>

Когда я нажимаю кнопку md, я вижу вывод console.log(scope), но scope.$on ничего не делает.

Если я проверяю scope в консоли, я вижу $mdOpenMenu: ƒ

Также я могу зарегистрировать scope.$id, который возвращает значение, но если я зарегистрирую scope.$mdMenuIsOpen, я получу неопределенное значение. Что означает, что mdMenu не открыто, иначе это будет правдой. Но в моем пользовательском интерфейсе меню открыто.

Есть идеи, почему мой scope.$on не работает?

// РЕДАКТИРОВАТЬ //

Кажется, что только при первом открытии меню scope.on('$mdMenuOpen') не работает. Если я снова открою меню, я увижу сообщение console.log.

// РЕДАКТИРОВАТЬ 2 //

Я скопировал свой код на Codepen https://codepen.io/anon/pen/LmQNzv, и там он, кажется, работает как задумано. Итак, я собираюсь посмотреть, в чем проблема в моем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...