我有一個自定義的彈出式面板,我想添加功能,以便在面板外單擊屏幕時關閉。我創建了一個指令來完成這個任務,但是我很難說明關閉事件發生了。Angular指令,觸發範圍函數
<div ng-if="ui.showConfig" auto-hide="ui.showConfig=false">...</div>
JS
myApp.directive('autoHide',
[function() {
return {
restrict: 'A',
scope: {
'autoHide': '&'
},
link: function (scope, element, attrs) {
var $overlay = $("<div style='position:absolute;top:0;left:0;width:100%;height:100%;z-index:2000;'>");
$overlay
.appendTo("body")
.one("click", function(e){
element.hide();
$overlay.unbind().remove();
// This is not firing...
// scope.autoHide();
});
element.css("zIndex", "2001");
element.on('$destroy', function() {
$overlay.unbind().remove();
});
}
};
}]);
疊加點擊事件被觸發。該小組正在隱藏。但是ui.showConfig
未設置爲false,導致用戶下次按兩次以打開面板。
此外,如果有另一種方法,我應該考慮請讓我知道!
您可以發佈在plunker你的代碼? – PSL 2014-08-28 19:09:57