我使用的trick是,利用冒泡达到点击菜单外部关闭菜单的目的:
var demo = angular.module('demo', []);
demo.directive('menu', function(){
return {
restrict: 'E',
scope: {},
link: function(scope, element, attrs) {
scope.displayMenu = false;
scope.showMenu = function(e) {
scope.displayMenu = true;
e.stopPropagation();
};
scope.clickInner = function(e) {
e.stopPropagation();
};
document.addEventListener('click', function(){
scope.displayMenu = false;
scope.$apply();
}, false);
},
template: '显示菜单' +
'
' +
'
' +
'
菜单一' +
'
菜单二' +
'
菜单三' +
'
' +
'
'
};
});