Не могу использовать $ mdSelect в директиве angularjs - PullRequest
0 голосов
/ 18 мая 2018

Я работал над способом закрытия md-select при закрытии md-меню.Я понял это>> 1001 *https://codepen.io/anon/pen/jxXbrX.

Но сейчас я пытаюсь реализовать это в своем собственном приложении, но в консоли браузера я получаю сообщение $mdSelect.hide is not a function.

Это директива:

namespace Xxx{
    angular.module('Xxx')
    .directive('mdCloseSelect', ['$mdSelect', ($mdSelect) => {
        return {
            link (scope, element, attrs, $mdSelect) {
                scope.$on('$mdMenuClose', (ev, element, $mdSelect) => {

                    $mdSelect.hide();

                });
            }
        };
    }]);
}

Я думаю, что проблема в объявлении $mdSelect, но я не могу найти, как я должен объявить это правильно.

1 Ответ

0 голосов
/ 18 мая 2018

Это, по крайней мере, должно решить неопределенную проблему:

angular.module('Xxx')
.directive('mdCloseSelect', ['$mdSelect', ($mdSelect) => {
    return {
        link (scope, element, attrs) { // You can not inject here anything, this is always predefined 3 args
            scope.$on('$mdMenuClose', () => { // Here you also can not

                $mdSelect.hide();

            });
        }
    };
}]);

PS Используйте какой-нибудь чекстайл Айк ​​Эслинт, который скажет вам, что использование одинаковых имен vars плохо.

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