1 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
我使用的trick是,利用冒泡達到點擊菜單外部關(guān)閉菜單的目的:
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: '<button class="showBtn" ng-click="showMenu($event)">顯示菜單</button>' +
'<div class="menu" ng-class="{show: displayMenu}" ng-click="clickInner($event)">' +
'<ul>' +
'<li>菜單一</li>' +
'<li>菜單二</li>' +
'<li>菜單三</li>' +
'</ul>' +
'</div>'
};
});
在線例子: jsfiddle
添加回答
舉報