无法在angularjs指令中使用$ mdSelect

时间:2018-05-18 14:03:40

标签: angularjs material-design

当md菜单关闭时,我一直在努力关闭md-select。我已经弄明白> 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 :(得分:1)

这至少应该解决未定义的问题:

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();

            });
        }
    };
}]);

P.S。使用一些checkstyle ike Eslint,它会告诉你使用同名的vars是不好的。