2016-08-14 2 views
0

Meine eckige App verfügt über einen Controller, der sowohl im modalen Modus als auch im modalen Modus verwendet werden kann. Ich möchte prüfen, in welchem ​​Modus es ist. Kann mir jemand helfen ?Angularjs - Überprüfen, ob modaler Controllermodus

Bestellen Controller

$scope.chooseClient = function() { 
     $uibModal.open({ 
      templateUrl: 'partials/client/edit.html', 
      controller: 'ClientEditController', 
     }).result.then(function (client) { 
      // Modal OK 
      if (client) { 
       $scope.model.client = client; 
      }  
     }, function (status) { 
      // Modal cancelado 
     }); 
    }; 

Client-Controller

.controller('ClientEditController', 
    function ($scope, $location) { 

     $scope.cancel = function() { 
      if (//I would check if modal mode) { 
       $scope.$dismiss('cancel'); 
      } else { 
       $location.path("/client/list"); 
      }  
     }; 



}); 
+0

Ich bin nicht sicher, ob es ein einfacherer Weg, aber nach [diesem doc] (https://github.com/angular-ui/bootstrap/tree/master/src/modal/docs) sollten Sie zumindest prüfen können, ob die 'openedClass' auf Ihr Element angewendet wird. –

Antwort

0

Sie können ein resolve Objekt mit einer Fahne übergeben. Das zwingt Sie dazu, die gleiche Lösung in Ihrer Route für den Controller zu übergeben, und injizieren, um den Controller zu lösen.

$scope.chooseClient = function() { 
    $uibModal.open({ 
     templateUrl: 'partials/client/edit.html', 
     controller: 'ClientEditController', 
     resolve: { 
      isModal: true 
     } 
    }).result.then(function (client) { 
     // Modal OK 
     if (client) { 
      $scope.model.client = client; 
     }  
    }, function (status) { 
     // Modal cancelado 
    }); 
}; 

Und als Kontrolle:

.controller('ClientEditController', function ($scope, $location, isModal) { 
    $scope.cancel = function() { 
     if (isModal) { 
      $scope.$dismiss('cancel'); 
     } else { 
      $location.path("/client/list"); 
     }  
    }; 
}); 

Siehe docs: $uibModal

+0

Vielen Dank, Ron Dadon. Es funktionierte! – araraujo