From c15bd3ea31c71a8afeffb14e065ead4e66c597e8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 18 Sep 2015 13:59:49 +0200 Subject: [PATCH] add support for ng-show on overlay directive --- .../overlays/umboverlay.directive.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js index ff8143089a..850f4898ab 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/overlays/umboverlay.directive.js @@ -176,8 +176,6 @@ } - activate(); - scope.submitForm = function(model) { if(scope.model.submit) { @@ -209,6 +207,22 @@ }; + // angular does not support ng-show on custom directives + // width isolated scopes. So we have to make our own. + if (attr.hasOwnProperty("ngShow")) { + scope.$watch("ngShow", function(value) { + if (value) { + el.show(); + activate(); + } else { + unregisterOverlay(); + el.hide(); + } + }); + } else { + activate(); + } + scope.$on('$destroy', function(){ unregisterOverlay(); }); @@ -221,6 +235,7 @@ replace: true, templateUrl: 'views/components/overlays/umb-overlay.html', scope: { + ngShow: "=", model: "=", view: "=", position: "@"