Skip to main content
1-Visitor
August 13, 2020
Solved

Vuforia Studio Close All Popups

  • August 13, 2020
  • 1 reply
  • 1532 views

Is there a way to close all of the popups that are currently visible without knowing what they are? I'm trying to avoid using a long list of 'hidepopup' for every single popup that could possibly be visible.

Best answer by RolandRaytchev

Hello @jlbrenneke ,

I think the answer of your question is 'yes' this is possible. Please, try the following code:

$scope.closeAllPopups=function()
{
 wdgs=$scope.view.wdg
Object.keys(wdgs).forEach(function(key) { 
 wdg = wdgs[key]
 console.warn(wdg)
 if ( (('type' in wdg)==true) && ((wdg.type=='floatingpopup') || (wdg.type=='modal'))) {
 
 console.warn("POPUP=>modelWdgReset key="+key)
 // one of the next options
 // $timeout($scope.$root.$broadcast('app.view["Home"].wdg["'+key+'"].svc.hidepopup'),100); 
 $scope.app.fn.triggerWidgetService(key,'hidepopup');
 									 }});
 $scope.$applyAsync();
}

1 reply

21-Topaz I
August 14, 2020

Hello @jlbrenneke ,

I think the answer of your question is 'yes' this is possible. Please, try the following code:

$scope.closeAllPopups=function()
{
 wdgs=$scope.view.wdg
Object.keys(wdgs).forEach(function(key) { 
 wdg = wdgs[key]
 console.warn(wdg)
 if ( (('type' in wdg)==true) && ((wdg.type=='floatingpopup') || (wdg.type=='modal'))) {
 
 console.warn("POPUP=>modelWdgReset key="+key)
 // one of the next options
 // $timeout($scope.$root.$broadcast('app.view["Home"].wdg["'+key+'"].svc.hidepopup'),100); 
 $scope.app.fn.triggerWidgetService(key,'hidepopup');
 									 }});
 $scope.$applyAsync();
}